C++的STL库确实好用,不过它也屏蔽了很多细节,让人选择容器时会有困惑.本篇博客来谈一下它的内存,请注意该博文几乎都是转载的.

数据结构

  1. vector: 内部实现是数组,一段连续的内存。
  2. list, 内部实现是双链表
  3. deque 内部实现是内存块的链表。
  4. string: 连续的内存
  5. set,map: 红黑树(平衡二叉树的一种)
  6. hash_map, hash_set 用哈希表(散列表)来实现。
  7. stack: 用vector或者是deque来实现
  8. queue,用deque实现