c++ STL容器总结:vector、list、deque、queue、stack、set、map

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的元素;

一、初始化

c++ STL容器总结:vector、list、deque、queue、stack、set、map_第1张图片

二、赋值


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

c++ STL容器总结:vector、list、deque、queue、stack、set、map_第2张图片

四、元素访问

c++ STL容器总结:vector、list、deque、queue、stack、set、map_第3张图片

五、插入删除元素

c++ STL容器总结:vector、list、deque、queue、stack、set、map_第4张图片

六、其它操作

c++ STL容器总结:vector、list、deque、queue、stack、set、map_第5张图片

你可能感兴趣的:(c++)