STL有很多版本,我剖析的是SGI版本,参考侯捷的《STL源码剖析》
首先是它的整体结构吧
STL有六大组件:
1)容器:各种数据结构(vector,list,map,set等)
2)迭代器:可以操纵数据的接口,有点像指针
3)空间配置器:负责内存空间的管理
4)配接器:一种修饰容器或者仿函数或者迭代器接口的东西
5)算法:各种常见的算法(sort,find等)
6)仿函数:行为类似函数的类,用作算法的某种策略
六大组件之间的关系
空间配置器为容器分配内存空间,迭代器是容器与算法的中间桥粱,仿函数可以帮助算法完成不同的策略,配接器用来修饰仿函数。