泛型算法小记(1)

泛型算法

概述:

泛型算法是标准库提供了一些算法,这些算法大多数独立于任何特定的容器,也就是说这些算法是通用的,
它们可以用于不同的类型的容器和不同类型的容器元素。

函数介绍 :

find(iterator1,iterator2,val)

  1. 函数功能:查找俩个迭代器范围之内的val元素,查找成功返回查到的第一个元素的迭代器,查 找失败返回函数的第二个参数iterator2。
  2. 头文件<algorithm>
  3. 函数参数:第一个参数iterator1是查找范围的起始点,第二个参数iterator2是查找范围的终点,第三个参数val是需要查找的元素。

find_if(iterator1,iterator2,UnaryPredicate pred)

  1. 函数功能:根据条件来查找序列内指定的数据,返回指向该数据的迭代器;
  2. 头文件:****<algorithm>
  3. 函数参数:第一个参数iterator1是查找范围的起始点,第二个参数iterator2是查找范围的终点,第三个参数可以是函数指针也可以是函数,还可以是lambda;
  4. 备注:

for_each(iteraior1,iterator2,UnaryPredicate pred)

  1. 函数功能:浏览序列内每一个数据,根据条件来做出相应的变化
  2. 头文件:****<algorithm>
  3. 函数参数:第一个参数iterator1是查找范围的起始点,第二个参数iterator2是查找范围的终点
  4. 备注:

accumulate(iteraior1,iterator2,val)

  1. 函数功能:运算iteraior1至iterator2之间的所有元素的和。
  2. 头文件<numeric>
  3. 函数参数:第一个参数iterator1是运算范围的起始点,第二个参数iterator2是运算范围的终点,第三个参数是加法运算初始值。
  4. 备注:在填写初始值类型时要考虑的所需要的运算结果值的类型,例如元素类型是double类型,而你填写的值是int类型,最后运
    算结果将是所填写的int类型。导致结果出错。

fill(iteraior1,iterator2,val)

  1. 函数功能:将iterator1至iterator2之间的元素赋值为val。
  2. 头文件<numeric>
  3. 函数参数:第一个参数iterator1是运算范围的起始点,第二个参数iterator2是运算范围的终点,第三个参数需要更改的值。

fill_n(iteraior1,size,val)

  1. 函数功能:将从iterator1开始后面的size个数量的元素赋值为val。
  2. 头文件<numeric>
  3. 函数参数:第一个参数iterator1是运算范围的起始点,运算范围大小,第三个参数需要更改的值。
  4. 备注:使用fill_n时,注意有效范围。iterator1+size不能超出容器定义的范围大小。

copy(iteraior1,iteraior2,iteraior3)

  1. 函数功能:向一个目的序列的指定迭代器写入数据
  2. 头文件:****<algorithm>
  3. 函数参数:第一个参数是需要拷贝数据的起始范围点,第二个参数需要拷贝数据的范围终点,第三个参数是拷贝至序列的起始点。
  4. 备注:算法不能改变容器的大小,所以在使用copy函数时,必须考虑目标序列的大小或者使用back_inserter()插入迭代器

replace(iteraior1,iteraior2,val1,val2)

  1. 函数功能:查找指定序列内的val1值,替换成val2
  2. 头文件:****<algorithm>
  3. 函数参数:查找序列起始点,查找序列终点,查找值,替换值
  4. 备注:此函数将序列内查找到所有相等的值替换掉

replace_copy(iteraior1,iteraior2,iteraior13,val1,val2)

  1. 函数功能:将本序列拷贝至新序列,并查找val1的值修改为val2,本序列不变
  2. 头文件:****<algorithm>
  3. 函数参数:序列1起始范围迭代器,序列1终点范围迭代器,序列2目标起始范围,查找值,修改值;
  4. 备注:

unique(iteraior1,iteraior2)

  1. 函数功能:将相邻的相同元素删除
  2. 头文件:****<algorithm>
  3. 函数参数:序列起始点迭代器,序列终点迭代器
  4. 备注:一般配合sort()函数使用

sort(iteraior1,iteraior2)

  1. 函数功能:将序列内元素进行排序(按字典顺序排序)
  2. 头文件:****<algorithm>
  3. 函数参数:序列起始点迭代器,序列终点迭代器
  4. 备注:

后记

个人在通过学习C++ primer后小记,更多更详细内容请访问C++.

posted @ 2019-10-29 15:45  Breezy-ye  阅读(100)  评论(0)    收藏  举报