c++学习札记(四)--泛型算法篇

来源:互联网 发布:win10 重置网络 编辑:程序博客网 时间:2024/06/05 00:21

 

1、由于find运算是基于迭代器的,因此可再任意容器中使用相同的find函数查找值;

2、算法的明确要求:(1)需要某种遍历集合的方式:能够从一个元素向前移动到下一个元素;

                                   (2)必须能够知道是否到达了集合的末尾;

                                   (3)必须能够对容器中的每一个元素与被查找的元素进行比较;

                                   (4)需要一个类型来指示出元素在容器中的位置,或者表示找不到该元素;

3、算法永不执行容器提供的操作:泛型算法本书从不执行容器操作,只是单独以来迭代器和迭代器操作实现。算法基于迭代器及其操作实现,而并非基于容器操作;

4、使用泛型算法必须包含头文件algorithm,使用泛化的算术算法必须包含头文件numeric;

5、fill函数只会对输入范围内已存在的元素进行写入操作,其值为它的第三个形参的副本;

6、切勿在没有元素的空容器上调用fill_n函数(或类似的写元素算法);

7、copy函数带有三个迭代器参数:头两个制定输入范围,第三个则指向目标序列的一个元素;

8、注意replace和replace_copy的区别应用;

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

10、sort和stable_sort区别;

11、count_if算法返回使谓词函数返回条件成立的元素个数;

12、ostream_iterator没有->操作符;

13、unique_copy算法将输入范围中不重复的值赋值到目标迭代器;

14、标准容器上的迭代器既支持自增运算,也支持自减运算,但是流迭代器却不行,由于不能反向遍历流,因此流迭代器不能创建反向迭代器;