基本容器
vector
- 底层为数组
- 新建时初始化一片空间
- 插入元素引起扩容的时候,gcc会申请2倍的空间,拷贝原有数据
- 释放原来空间
deque
- 底层为map+数组的结构,通过分段存储的结构解决队列进出频繁的问题,本质上还是类似vector的结构
list
- 双向链表
set map
- 底层为红黑树
unordered_set unordered_map
- 底层为hash,使用哈希桶的方法,使用拉链法解决hash冲突
stack queue
- 底层都是deque经过改装适配
priority_queue
- 底层还是vector,然后使用堆排实现
参考
- https://zhuanlan.zhihu.com/p/359878588