【总结】stl(以后还会慢慢补上

总结stl的用法(啊现在还很少以后会慢慢补上的w

vector

vector是一个动态数组,在定义后他会预先开一个比较小的空间,对于push_back()操作如果数组大小不够了,会继续开一些空间。

访问位置时间复杂度O(1),加入元素时间复杂度近似O(1)

缺点:常数会比较大

常用操作

定义方式:vector a;

在末尾压入容器:a.push_back(x);

在末尾弹出容器:a.pop_back();

清空容器:a.clear();

查询元素个数:a.size();

首指针:a.begin();

插入元素在sit位置:a.insert(sit,x);其中sit是vector的迭代器。

调用的时候直接通过数组下标就能访问

queue

是一种先进先出的线性表,可以直接用stl中的queue

常用操作:

¢定义:queue a;

¢插入队尾:a.push(x);

¢删除队首:a.pop();

¢查询队尾:a.back();

¢查询队首:a.front();

¢查询长度:a.size();

¢清空只能慢慢pop。

我们可以选用一个队首指针和队尾指针来手动模拟一个队列。

stack

同queue类似,但是先进后出的线性表

常用操作

定义:stack a;

查询栈顶:a.top();

压入栈顶:a.push(x);

将元素从栈顶弹出:a.pop();

查询a中的元素个数:a.size();

清空只能慢慢pop。

思考:
如何用两个栈A,B模拟一个队列,并且时间复杂度尽可能好

先压入A,再将A中元素依次弹出,压入B

map

映射,把它看做一个无限大的数组。

定义方式:map<int ,int> a;

使用方式:a[x]++,cout<<a[y]等。

利用迭代器查询map里的所有二元组:

for (map<int,int>::iterator sit=a.begin(); sit!=a.end(); sit++) cout<first<<‘ ‘<second<<endl;

清空:a.clear();

原文地址:https://www.cnblogs.com/huixinxinw/p/12242369.html

时间: 2024-10-09 12:11:57

【总结】stl(以后还会慢慢补上的相关文章

java--学习Integer源码(慢慢补)

今天不看spring了,上了一天的课,晚上还要写编译原理作业(头疼).先看点api的源码放松一下.不得不说,看这些世界上最顶尖的程序员写出来的东西真是和看nba一样是一件愉快的事情,虽然有点烧脑. 先看看Integer.toString(int i)是怎么实现的. 首先有两个相关的方法,stringSize(int x)和getChars(int i, int index, char[] buf). 1 final static int [] sizeTable = {9,99,999,9999

Twitter面试题蓄水池蓄水量算法(原创 JS版,以后可能会补上C#的)

之前在群里有人讨论Twitter的面试题,蓄水池蓄水量计算,于是自己写了个JS版的(PS:主要后台代码还要编译,想想还是JS快,于是就使用了JS了.不过算法主要还是思路嘛,而且JS应该都没问题吧^_^;) 这里是题目: ---------------------------分割线------------------------ 蓄水池储水量问题 看图,可以将方块看做砖.题干很简单,问最多能放多少水.例如,图2就是图1可放的最多水(蓝色部分),如果将一块砖看做1的话,图2就是能放10个单位的水.图

昨天没写今天补上

恩因为今天要考试所以昨天晚上在复习,没来得及写,现在补上. 昨天依旧是循环,被虐了整整一天! 到现在仍然不知道for里的循环体怎么写.... 感到人生无望...(不想说什么了粘题吧) p1032;#include〈iostream〉 using namespace std; int main () { long long a,b=0,c,d,sum=0; cin>>a; while (a>0) { d=a/10; sum++; for(int i=1;i<=sum;i++) { c

Jan 16 - Search Insert Position; Array; Binary Search; Iteration&amp;Recursion;---Iteration再补上

Recursion: 代码: public class Solution { public int searchInsert(int[] nums, int target) { int len = nums.length; if(len == 0) return 0; return findPosition(nums, 0, len-1, target); } public int findPosition(int[] nums, int start, int end, int target){

慢慢跟上吧

自己取一个大气又可爱的标题 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 600 720 ? Estimate ? 估计这个任务需要多少时间 600 1500 Development 开发 600 720 ? Analysis ? 需求分析 (包括学习新技术) 30 40 ? Design Spec ? 生成设计文档 30 40 ? Design Review ? 设计复审 30 40

从初学android到现在每天收入50块,收入还在慢慢增加 ,android开发者赚钱

从自学安卓一年到到现在每天有一点的收入还是蛮有成就感的 .本人,是学javaweb 开发的,刚工作不久,入职一个小公司,平常事情也不是很多,偶然的机会接触到android ,觉得挺好玩的 .刚开始挺迷茫的,搭载安卓环境弄了好久(现在搭载简单多了,直接在google官方下载一个压缩包,adt,都集成好了直接就可以用了 . 下载地址 http://developer.android.com/sdk/index.html#download).学习安卓一段时间后,自己也想搞一个小应用玩玩 ,然后就思索着

补上15的

今晚断网了 所以只能现在这里先记着了,为期13天的第一阶段(杨洪波老师) 基础加强 ,和ADO.net结束了,在这里谢谢小杨老师,虽然不能说小杨老师课讲的透彻,但是,这也是我目前为止觉得还行的老师,其实,每个人都是老师领进门,修行靠个人了 现在我才发现平时少敲代码是最大的短板 还有基础很不扎实 这都需要自己下狠功夫去补,虽然有点后悔以前的的浪费时间,但是也庆幸自己现在发现了.虽然苦点,累点,但是我觉得自己造成后果,只能用自己几倍的努力去弥补! --1.列出EMPLOYEES表中各部门的:部门编号

sdut oj 1163 C语言实验——排列 (当初不会递归生成排列,这个题目现在才补上 刘汝佳给出了写法 *【模板】 当然有生成全排列的函数存在 )

C语言实验——排列 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 有4个互不相同的数字,请按序输出由其中三个不重复数字组成的排列. 输入 4个整数. 输出 所有排列,输出顺序见样例. 示例输入 1 2 3 4 示例输出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 1 2 4 1 4 2 2 1 4 2 4 1 4 1 2 4 2 1 1 3 4 1 4 3 3 1 4 3 4 1 4 1 3 4

TIOBE2017榜单公布_PHP还会是世界上最好的语言吗?

原文地址 TIOBE 2017最新编程榜单 第1:java,第2:C,第3:C++....第6:php 看到这个榜单,我的记忆瞬间回到了十年前.那时我结识了原配asp,asp代码真的好简单啊,看了遍<十天学完asp>,再下两个源码,就这样我华丽变身为asp程序员,我们也就这样相好了.asp+access非常的方便,直接上传空间,解析绑定下域名就搞定. 可是后来,asp没落了...我也变心了,于是又移情别恋了asp.net,虽然只是多个了.net,但却完全找不到前任的身影,这段感情没多持续多久,