泛型算法
- 标准库定义了大约100个类型无关的对序列进行操作的算法;
- 序列可以是标准库容器中的元素、一个内置数组、通过读写一个流来生成的序列等。
迭代器
- 算法通过在迭代器上进行操作来实现类型无关,这就是为什么叫泛型算法;
- 多数算法接受的前两个参数是一对迭代器,表示一个元素的范围;
- 额外的迭代器可能包括一个表示目的位置的输出迭代器,或是另一个输入范围。
- 例如:reverse_copy(beg, end, dest)
//dest被绑定到一个插入迭代器或者一个ostream_iterator
迭代器的分类
-
根据支持的操作不同分为五类:
输入、输出、前向、双向、随机方位迭代器 -
如同迭代器根据操作分类一样,传递给算法的迭代器参数也按照要求的操作进行分类;
插入迭代器
- 算法不直接改变序列;
- 但是插入迭代器绑定到一个容器上,就可以做到;
- 将容器元素类型的值赋予给插入迭代器,插入迭代器将该值添加到容器。