(一)STL提供六大组件:
(1)容器(containers):
顺序容器(sequence):vector、list和deque。
关联容器(associative):set和map。
从实现角度来看,STL容器是一种class template。
(2)算法(algorithms)
从实现角度来看,STL算法是一种function template。
(3)迭代器(iterators)
迭代器扮演容器和算法之间的胶合剂,是所谓的“泛型指针”,共有五种类型,以及其他衍生变化。
所有STL容器都附带有自己的专属的迭代器,只有容器的设计者才知道如何遍历自己的元素。原生指针(native pointer)也是一种迭代器。
(4)仿函数(又称函数对象)(functors)
(5)配接器(adapters)
用来修饰容器或仿函数或迭代器接口。
包括三种类型:
容器配接器(container adapter):改变容器接口。
迭代器配接器(iterator adapter):改变迭代器接口。
仿函数配接器(function adapter):改变仿函数接口。
(6)配置器(allocators):
负责空间的配置和管理。
(二)关系
Container通过Allocator取得数据存储空间,Algorithm通过Iterator存取Container内容,Functor可以协助Algorithm完成不同的策略变化,Adapter可以修饰Functor。