基本容器

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