C++ STL 六大组件
STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器
- 容器:各种数据结构,如vector、list、deque、set、map、stack等,用来存放数据。
- 算法:各种常用的算法,如sort、find、copy、for_each等。
- 迭代器:扮演了容器与算法之间的胶合剂(可以理解为指针,常用的有双向迭代器和随机访问迭代器)。
- 仿函数:行为类似函数,可作为算法的某种策略。运算符重载 operator()实现,又称为函数对象。如果返回值是bool类型,就叫谓词,一个输入参数是一元谓词,两个则是二元谓词。
- 适配器:一种用来修饰容器或者仿函数或迭代器接口的东西。适配器本身是一个
新的自定义类型 class/struct
,其中会包含一个或多个辅助的所适配的类型的成员,并对内含的成员的接口进行改造,再以新的适配器类型向外部提供接口。 - 空间配置器:负责空间的配置与管理。例如,使用vector容器,存储数据的空间由空间配置器完成内存的分配和资源回收。空间配置器本质上是对
new
和delete
运算符再次封装而成的类模板,对外提供可用的接口,实现内存资源的自动化管理。