STL算法---数学计算算法

23 篇文章 0 订阅
13 篇文章 0 订阅

数学计算算法

1. accumulate

iterator对标识的序列段元素之和,加到一个由val指定的初始值上。重载版本不再做加法,而是传进来的二元操作符被应用到元素上
函数原形
template<class InIt, class T> T accumulate(InIt first, InIt last, T val);
template<class InIt, class T, class Pred> T accumulate(InIt first, InIt last, T val, Pred pr);

2. partial_sum

创建一个新序列,其中每个元素值代表指定范围内该位置前所有元素之和。重载版本使用自定义操作代替加法
函数原形
template<class InIt, class OutIt> OutIt partial_sum(InIt first, InIt last,OutIt result);
template<class InIt, class OutIt, class Pred> OutIt partial_sum(InIt first, InIt last,OutIt result, Pred pr);

3. product

对两个序列做内积(对应元素相乘,再求和)并将内积加到一个输入的初始值上。重载版本使用用户定义的操作
函数原形
template<class InIt1, class InIt2, class T> T product(InIt1 first1, InIt1 last1,Init2 first2, T val);
template<class InIt1, class InIt2, class T,class Pred1, class Pred2> T product(InIt1 first1, InIt1 last1,Init2 first2, T val, Pred1 pr1, Pred2 pr2);

4. adjacent_difference

创建一个新序列,新序列中每个新值代表当前元素与上一个元素的差。重载版本用指定二元操作计算相邻元素的差
函数原形
template<class InIt, class OutIt> OutIt adjacent_difference(InIt first, InIt last,OutIt result);
template<class InIt, class OutIt, class Pred> OutIt adjacent_difference(InIt first, InIt last,OutIt result, Pred pr);

5. 排列组合算法


5.1 next_permutation

取出当前范围内的排列,并重新排序为下一个排列。重载版本使用自定义的比较操作
函数原形
template<class BidIt> bool next_permutation(BidIt first, BidIt last);
template<class BidIt, class Pred> bool next_permutation(BidIt first, BidIt last, Pred pr);

5.2 prev_permutation

取出指定范围内的序列并将它重新排序为上一个序列。如果不存在上一个序列则返回false。重载版本使用自定义的比较操作
函数原形
template<class BidIt> bool prev_permutation(BidIt first, BidIt last);
template<class BidIt, class Pred> bool prev_permutation(BidIt first, BidIt last, Pred pr);


说明:
1. 对着组算法, 目前自己使用的比较少.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值