泛型算法小记(1)
泛型算法
概述:
泛型算法是标准库提供了一些算法,这些算法大多数独立于任何特定的容器,也就是说这些算法是通用的,
它们可以用于不同的类型的容器和不同类型的容器元素。
函数介绍 :
find(iterator1,iterator2,val)
- 函数功能:查找俩个迭代器范围之内的val元素,查找成功返回查到的第一个元素的迭代器,查 找失败返回函数的第二个参数iterator2。
- 头文件:<algorithm>。
- 函数参数:第一个参数iterator1是查找范围的起始点,第二个参数iterator2是查找范围的终点,第三个参数val是需要查找的元素。
find_if(iterator1,iterator2,UnaryPredicate pred)
- 函数功能:根据条件来查找序列内指定的数据,返回指向该数据的迭代器;
- 头文件:****<algorithm>
- 函数参数:第一个参数iterator1是查找范围的起始点,第二个参数iterator2是查找范围的终点,第三个参数可以是函数指针也可以是函数,还可以是lambda;
- 备注:
for_each(iteraior1,iterator2,UnaryPredicate pred)
- 函数功能:浏览序列内每一个数据,根据条件来做出相应的变化
- 头文件:****<algorithm>
- 函数参数:第一个参数iterator1是查找范围的起始点,第二个参数iterator2是查找范围的终点
- 备注:
accumulate(iteraior1,iterator2,val)
- 函数功能:运算iteraior1至iterator2之间的所有元素的和。
- 头文件:<numeric>。
- 函数参数:第一个参数iterator1是运算范围的起始点,第二个参数iterator2是运算范围的终点,第三个参数是加法运算初始值。
- 备注:在填写初始值类型时要考虑的所需要的运算结果值的类型,例如元素类型是double类型,而你填写的值是int类型,最后运
算结果将是所填写的int类型。导致结果出错。
fill(iteraior1,iterator2,val)
- 函数功能:将iterator1至iterator2之间的元素赋值为val。
- 头文件:<numeric>。
- 函数参数:第一个参数iterator1是运算范围的起始点,第二个参数iterator2是运算范围的终点,第三个参数需要更改的值。
fill_n(iteraior1,size,val)
- 函数功能:将从iterator1开始后面的size个数量的元素赋值为val。
- 头文件:<numeric>。
- 函数参数:第一个参数iterator1是运算范围的起始点,运算范围大小,第三个参数需要更改的值。
- 备注:使用fill_n时,注意有效范围。iterator1+size不能超出容器定义的范围大小。
copy(iteraior1,iteraior2,iteraior3)
- 函数功能:向一个目的序列的指定迭代器写入数据
- 头文件:****<algorithm>
- 函数参数:第一个参数是需要拷贝数据的起始范围点,第二个参数需要拷贝数据的范围终点,第三个参数是拷贝至序列的起始点。
- 备注:算法不能改变容器的大小,所以在使用copy函数时,必须考虑目标序列的大小或者使用back_inserter()插入迭代器
replace(iteraior1,iteraior2,val1,val2)
- 函数功能:查找指定序列内的val1值,替换成val2
- 头文件:****<algorithm>
- 函数参数:查找序列起始点,查找序列终点,查找值,替换值
- 备注:此函数将序列内查找到所有相等的值替换掉
replace_copy(iteraior1,iteraior2,iteraior13,val1,val2)
- 函数功能:将本序列拷贝至新序列,并查找val1的值修改为val2,本序列不变
- 头文件:****<algorithm>
- 函数参数:序列1起始范围迭代器,序列1终点范围迭代器,序列2目标起始范围,查找值,修改值;
- 备注:
unique(iteraior1,iteraior2)
- 函数功能:将相邻的相同元素删除
- 头文件:****<algorithm>
- 函数参数:序列起始点迭代器,序列终点迭代器
- 备注:一般配合sort()函数使用
sort(iteraior1,iteraior2)
- 函数功能:将序列内元素进行排序(按字典顺序排序)
- 头文件:****<algorithm>
- 函数参数:序列起始点迭代器,序列终点迭代器
- 备注:
后记
个人在通过学习C++ primer后小记,更多更详细内容请访问C++.
持之以恒的学习,方是进步的唯一途径!

浙公网安备 33010602011771号