C++标准模板库(Standard Template Library,STL)是泛型程序设计最成功的实例。STL是一些常用数据结构和算法的模板的集合。
STL六大组件:
容器(containers):存放数据
算法(algorithms):操作数据
质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等
非质变算法:是指运算过程中不会更改区间内的元素内容。例如查找、计数、遍历、寻找极值等等
迭代器(iterators):容器和算法的桥梁(相当于指针)
输入迭代器:提供对数据的只读访问。只读, 支持++、 ==、 ! =
输出迭代器:提供对数据的只写访问。只写, 支持++
前向迭代器:提供读写操作, 并能向前推进迭代器。读写, 支持++、 ==、 ! =
双向迭代器:提供读写操作, 并能向前和向后操作。读写, 支持++、 --,
随机迭代器:提供读写操作, 并能以跳跃的方式访问容器的任意数据, 是功能最强的迭代器。读写, 支持++、 --、 [n]、 -n、 <、 <=、 >、 >
仿函数(functors):为算法提供更多的策略
适配器(adapters):为算法提供更多的参数接口
空间配置器(allocators):管理容器和算法的空间
C++ 标准模板库的核心包括三大组件:容器,算法,迭代器
迭代器与容器一一对应