c++STL中的容器会自动申请和释放内存,无需使用new、delete,一共有7种:

1、vector: 

类似数组,存储在一段连续的内存数组上,超出capacity后需要开辟一段新的更大的空间,把原来的数据拷贝过来,插入删除可能使iterator失效;

可以快速地随机访问

2、deque双端队列: 

类似数组,动态的以分段连续的空间组合而成,随时能增加一段新的空间并链接起来;

可以快速地在头尾插入删除数据

3、list双向链表:

内存空间是不连续的,链接而成;

可以快速地在任何位置插入删除数据

4、queue队列:

没有迭代器,不能遍历;

先进先出

5、stack堆栈:

没有迭代器,不能遍历;

先进后出

6、set集合:

以二叉排序树的形式存储元素,set中的元素在插入删除时就会自动排序;

查找的速度很快O(lgn);

不能同时存在两个相同的元素;

7、map字典:

以二叉排序树的形式存储元素,map中的元素在插入删除时就会自动排序(以key作为排序依据);

查找的速度很快O(lgn);

不能同时存在两个具有相同key的元素;

一、初始化


二、赋值


三、迭代器(stack、queue没有迭代器)


四、元素访问


五、插入删除元素


六、其它操作


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐