💡 一分钟速览:按顺序阅读 STL 源码:先看顺序容器,再比较树和哈希容器,最后掌握迭代器失效与类型萃取;注意文章所用的标准库版本。
最后更新:2026-10-14
源码剖析 · 文章索引¶
这些文章讨论的是 STL 的实现选择,而不只是公开 API。部分源码来自较旧的 GCC 版本;把内部细节用于当前项目之前,请先确认文章注明的实现版本。
按问题选择路线¶
- 顺序容器: 从 array入手,再比较 vector与 deque的存储和迭代器行为。
- 关联容器: 先理解红黑树,再看 map 与 multimap;随后与 unordered_map的哈希表结构比较。
- 正确性: 把迭代器实现与迭代器失效放在一起读,避免优化时留下悬空迭代器。
- 模板机制: 遇到类型提取代码时,查阅 traits 类型萃取。
全部源码剖析¶
- STL array 源码剖析
- STL string 深析
- STL string 面试题精讲
- STL deque 源码剖析
- STL 空基类优化 EBO
- STL 手写哈希表实现
- STL hashtable 哈希表
- STL 迭代器源码剖析
- STL list 源码剖析
- STL map 与 multimap
- STL queue 与 stack 源码剖析
- STL 红黑树实现
- STL set 与 multiset
- STL 迭代器失效
- STL traits 类型萃取
- STL typename 源码剖析
- STL unordered_map 源码剖析
- STL vector 源码剖析