C++容器

参考:cplusplus.com
(注意,所有可以用迭代器访问的东西都可以直接调用algorithm库的函数比如sort和reverse)

常用的容器类型如下:

数组类容器

【数组类容器分配的空间是连续的,可以通过下标索引方式找到】
array:静态数组
vector:动态数组,变长。
两者的相似之处在于迭代器类似。
但:
vector可以用的函数类型更丰富,初始化也更丰富。
因为是变长,所以也可以push_back和pop操作来决定元素的进出;

对于初始化特殊值为5个6:
array arraynums;
arraynums.fill(6);

vector vectornums(5,6);

此外,vector可以通过resize和reserve等方式调整大小。

链表类容器

list:双向链表
forward_list:单向链表。
链表,不再采用连续的内存空间。
初始化函数为assign,填充的参数和vector类似。
同样是序列类,list允许从前或者从后面操作(数组类只能从后往前做)
允许push_back,push_front和pop_back,pop_front
可以通过remove直接移除指定元素。
可以通过unique实现去重。
可以调用sort。

而forward_list只处理头部。
可以pop_front和push_front来管理头部
其余用法和list类似。

队列类容器

queue,FIFO类的队列。
允许push和pop

deque,双边的队列,允许push_back,push_front和pop_back,pop_front

特殊队列:优先队列,保证最前面的永远是最大的

stack, LIFO队列,允许 push和pop,也可以取top

map类容器

map的本质是红黑树
unordered_map的本质是哈希表

集合类容器

set的本质是平衡二叉树
unordered_set的本质是哈希表

你可能感兴趣的:(C++容器)