第11章 泛型算法

来源:互联网 发布:unity3d 5.0 布料 编辑:程序博客网 时间:2024/05/29 04:25

泛型算法本身从不执行容器操作,只是单独依赖迭代器和迭代器操作实现。
算法从不直接添加或删除元素。

back_inserter函数是迭代器适配器,迭代器适配器使用一个对象作为实参,并生成一个适应其实参行为的新对象。

谓词是做某些检测的函数,返回用于条件判断的类型,指出条件是否成立。

三种插入迭代器的区别在于插入元素的位置不同。
back_inserter,使用push_back实现在容器末端插入。
front_inserter,使用push_front实现在容器前端插入。
inserter,使用insert实现在容器中指定位置插入。

流迭代器不能创建反向迭代器。

使用普通迭代器对反向迭代器进行初始化或赋值时,所得到的迭代器并不是指向原迭代器所指向的元素。

输入迭代器只能顺序使用,一旦输入迭代器自增了,就无法再用它检查之前的元素。

map,set和list类型提供双向迭代器。
string,vector和deque容器上定义的迭代器是随机访问迭代器,用作访问内置数组元素的指针也是随机访问迭代器。
istream_iterator是输入迭代器。
ostream_iterator是输出迭代器。

关联容器的键是const对象,关联容器不能使用任何写序列元素的算法。

算法最基本的性质是需要使用的迭代器种类。

原创粉丝点击