STL源码剖析笔记-6算法(6.3 数值算法)

6.3 数值算法

  • 欲使用它们,客户端必须包含表头<numeric>
  • SGI将它们实现于<stl_numeric.h>
  • accumulate:计算某个区间内的元素和,累加到初值上。
template <class InputIterator, class T>
T accumulate(InputIterator first, InputIterator last, T init)
  • adjacent_difference:计算区间内相邻元素的差值,储存第一元素的值,然后储存后继元素的差值,如1,2,3,4,5的计算结果是1,1,1,1,1。
template <class InputIterator, class OutputIterator>
OutputIterator adjacent_difference(InputIterator first, InputIterator last, OutputIterator result)
  • inner_product:计算两个序列的内积,加到初值上
template <class InputIterator1, class InputIterator2, class T>
T inner_product(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, T init)
  • partial_sum:计算区间内的局部和,例如1,2,3,4,5的计算结果就是1,3,6,10,15.
template <class InputIterator, class OutputIterator>
OutputIterator partial_sum(InputIterator first, InputIterator last, OutputIterator result)
  • power:计算某数的n次幂方。这里的n幂次是指自己对自己进行某种运算n次,如果指定为乘法,就是乘幂。此算法不在STL标准之列,由SGI专属。
template <class T, class Integer>
inline T power(T x, Integer n)
  • iota:在区间内填入value, value+1, value+2…
template <class ForwardIterator class T>
void iota(ForwardIterator first, ForwardIterator last, T value)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值