STL有很多版本,我剖析的是SGI版本,參考侯捷的《STL源碼剖析》
首先是它的整體結構吧
STL有六大組件:
1)容器:各種數據結構(vector,list,map,set等)
2)迭代器:可以操縱數據的接口,有點像指針
3)空間配置器:負責內存空間的管理
4)配接器:一種修飾容器或者仿函數或者迭代器接口的東西
5)算法:各種常見的算法(sort,find等)
6)仿函數:行爲類似函數的類,用作算法的某種策略
六大組件之間的關係
空間配置器爲容器分配內存空間,迭代器是容器與算法的中間橋粱,仿函數可以幫助算法完成不同的策略,配接器用來修飾仿函數。