序列容器

底层均为连续/链式存储,支持按位置访问。

容器底层结构文件
vector动态数组(连续内存)vector
array定长数组(栈上固定大小)array
deque分段连续缓冲区deque
list双向链表list
forward_list单向链表list
string动态字符数组(SSO)string

关联容器

底层为红黑树,元素按 key 自动排序,支持范围查询。

容器说明文件
set有序唯一集合set
multiset有序可重复集合set
map有序唯一键值对map
multimap有序可重复键值对map

无序容器

底层为哈希表,平均 O(1) 操作,元素无序。

容器说明文件
unordered_set哈希唯一集合unordered_set
unordered_multiset哈希可重复集合unordered_set
unordered_map哈希唯一键值对unordered_map
unordered_multimap哈希可重复键值对unordered_map

适配器

对底层容器的封装,改变访问方式。

容器语义底层默认文件
stackLIFO(后进先出)dequestack
queueFIFO(先进先出)dequequeue
priority_queue堆(最大/最小优先)vectorpriority_queue

其他

组件说明文件
pair二元组(键值对基础元素)pair
bitset编译期定长位集bitset

容器选择速查

需求推荐容器
随机访问 + 尾部增删vector
固定大小数组array
头尾快速增删 + 随机访问deque
频繁中间插入/删除list
字符串处理string
有序 + 去重set
有序键值对map
快速判重/查找unordered_set
快速键值查找unordered_map
LIFOstack
FIFO / BFSqueue
动态取最值priority_queue
状态压缩 / 位运算bitset

相关数据结构

概念链接
动态数组A_容器_Container
B_栈_Stack
C_堆_Heap
链表D_链表_LinkedList
队列F_队列_Queue
哈希表G_哈希表_HashTable
树(BST/AVL/红黑树)I_树_Tree_BST_AVL

C 语言对应