泛型算法之数值算法(numeric头文件)详细介绍

数值算法属于泛型算法, 定义在头文件numeric中
数值算法要求输入迭代器,如果算法输出数据,则使用输出迭代器表示目的位置
定制:除iota外,数值算法都提供了重载版本(即用谓词代替默认运算符的自定义版本)
1 accumulate

accumulate(beg,end,init);
accumulate(beg,end,init,binaryOp);

返回输入序列中所有值的和,和的初值从init指定的值开始
第一个版本使用元素类型的+运算符,第二个版本使用指定的二元操作
2 inner_product

inner_product(beg,end,beg2,init);
inner_product(beg,end,beg2,init,binOp1,binOp2);

返回两个序列的内积(即对应元素的积的和),和的初值由init指定的值开始
第一个版本使用元素类型的*和+,第二个版本使用给定的二元操作,使用第一个操作代替加法,使用第二个操作代替乘法
3 partial_sum

partial_sum(beg,end,dest);
partial_sum(beg,end,dest,binaryOp);

新序列写入dest,每个新元素的值都等于输入范围中当前位置和之前位置上所有元素之和
第一个版本使用元素类型的+运算符,第二个版本使用指定的二元操作
4 adjacent_difference

adjacent_difference(beg,end,dest);
adjacent_difference(beg,end,dest,binaryOp);

新序列写入dest,每个新元素的值都等于输入范围内当前元素与前一个元素之差。
第一版本使用元素类型的-运算符,第二个版本使用指定的二元操作
5 iota

iota(beg,end,val);

将val赋给首元素并递增val。将递增后的值赋予下一个元素,继续递增val。
iota没有提供重载版本

发布了90 篇原创文章 · 获赞 8 · 访问量 8265

猜你喜欢

转载自blog.csdn.net/weixin_43854189/article/details/102248742
今日推荐