array: 固定大小数组
vector:动态扩容数组
deque:双端队列。类似vector,支持动态扩容,支持随机访问(通过[]运算符),但不保证元素存储的连续性。
为保证效率,插入和删除操作只能从开始端执行。序列较大时可以考虑替代vetor(relloc开销大)。
stack: 栈(LIFO)。 默认使用deque作为内部容器
queue:队列(FIFO)。默认使用deque作为内部容器(官网说也可以用list)。
priority_queue: 优先队列。堆的一种实现方式,默认实现的最大堆。内部使用vector作为内部容器。
forward_list: 单向链表。
list: 双向链表
map,multimap: 关联容器。通过key,可以找到对应的value元素。内部使用二叉查找树实现。
set,multiset: 集合。 set内的元素具有唯一性,且set内的元素不允许再次修改。内部使用二叉查找树实现。
unordered_map:类似map。但比map效率高,无需排序,内部使用hash存储,平均访问时间为常数。
unordered_set:类似set。但比set效率高,无需排序,内部使用hash存储,平均访问时间为常数。
vector:动态扩容数组
deque:双端队列。类似vector,支持动态扩容,支持随机访问(通过[]运算符),但不保证元素存储的连续性。
为保证效率,插入和删除操作只能从开始端执行。序列较大时可以考虑替代vetor(relloc开销大)。
stack: 栈(LIFO)。 默认使用deque作为内部容器
queue:队列(FIFO)。默认使用deque作为内部容器(官网说也可以用list)。
priority_queue: 优先队列。堆的一种实现方式,默认实现的最大堆。内部使用vector作为内部容器。
forward_list: 单向链表。
list: 双向链表
map,multimap: 关联容器。通过key,可以找到对应的value元素。内部使用二叉查找树实现。
set,multiset: 集合。 set内的元素具有唯一性,且set内的元素不允许再次修改。内部使用二叉查找树实现。
unordered_map:类似map。但比map效率高,无需排序,内部使用hash存储,平均访问时间为常数。
unordered_set:类似set。但比set效率高,无需排序,内部使用hash存储,平均访问时间为常数。