STL(标准模板库)是C++标准程序库的核心。STL是一个泛型(generic)程序库,提供一系列软件方案,利用先进、高效的算法来管理数据。从程序员的角度看来,STL是由一些可适应不同需求的群集类别(collection classes),和一些能够在这些数据群集上运作的算法构成。STL内的所有组件都由templates(模板)构成,所以其元素可以是任意型别。
STL的六大组件:
l 容器(container)用来管理某类对象的集合。
l 算法(algorithm)用来处理群集内的元素。
l 迭代器(iterator)用来在一个对象群集(collection of objects)的元素上进行遍历动作。
l 配接器(adapter)
l 仿函数(functor)
l 配置器(allocator)
图1 STL组件之间的合作
备注:容器、算法、迭代器——STL的三个基本组件。
侯捷曾经把STL的学习比喻为三个境界(或层次):
第一境界:熟用STL
第二境界:了解泛型技术的内涵与STL的学理乃至实作
第三境界:扩充STL
一般的程序员,能达到第一个境界已经是不小的收获了,如果达到第二境界那可谓是很大的成绩了!于我,是不敢奢求第三境界的!
附1:STL(Standard Template Library)在维基百科中的简介(链接在这里)。