16.6 算法
STL包含很多处理容器的非成员函数,它们的总体设计是相同的:
- 都使用迭代器来标识要处理的数据区间和结果的放置位置
- 有些函数接受一个函数对象参数,并使用其来处理数据
由上引出下面对于算法函数的讨论:
对于算法函数设计,有两个主要的通用部分:
- 使用模板来提供泛型
- 使用迭代器来提供访问容器中数据的通用表示
### 以上设计充分地支持了STL算法,并且统一的容器设计使得不同类型的容器之间具有明显关系,算
### 法的通用性使得它跨越了容器与容器之间、数据与数据之间的差距,但凡概念上同质的数据结构
### 均可使用同一算法,即使它采用了不同的容器种类甚至不同的数据类型。