SGI STL 源码阅读:空间配置器与对象生命周期
从 allocator 标准接口、construct/destroy 到 SGI 二级配置器,理解 STL 如何分离内存分配与对象构造。
Source Code Learning
这个专栏用于把 SGI STL 的核心组件串成一张可理解的源码地图:空间配置器负责内存,迭代器连接容器和算法, 序列式容器与关联式容器提供数据结构,仿函数和适配器让算法行为可定制。
flowchart LR
A[空间配置器 Allocator] --> B[对象构造与析构]
A --> C[序列式容器]
B --> C
D[迭代器 Iterator] --> E[Traits 萃取]
E --> F[算法分发]
C --> D
C --> G[容器适配器]
H[关联式容器] --> I[红黑树 / Hashtable]
D --> H
J[仿函数 Functor] --> F
J --> K[函数适配器]
K --> F
Articles
从 allocator 标准接口、construct/destroy 到 SGI 二级配置器,理解 STL 如何分离内存分配与对象构造。
理解迭代器如何把容器和算法粘合起来,以及 iterator_traits 如何解决原生指针和自定义迭代器的型别萃取。
围绕 vector、list、deque、stack、queue、heap 和 priority_queue,梳理序列式容器的存储结构和适配关系。
从红黑树节点、header 设计、旋转再平衡到 hashtable 桶结构,理解 set/map/hash_set/hash_map 的底层实现。
理解 unary_function、binary_function、not/bind/compose 等仿函数适配器,以及 stack、queue、priority_queue 的容器适配思想。