【摘要】:partial_sum()算法的功能是对迭代器[_First,_Last]确定范围内的元素进行部分求和。partial_sum()算法的原型为:其中,第一种形式用于计算源区间[_First,_Last]中每个元素的部分和,然后将结果写入以result为起点的目标区间;第二种形式包含了一个谓词_Binary_op,对源区间中的每个元素进行_Binary_op处理。通过以上描述可知,对于序列a,b,c,d,partial_sum使用()算法可产生序列a,a+b,a+b+c,a+b+c+d。下面以例6-12说明partial_sum()算法的使用方法。
partial_sum()算法的功能是对迭代器[_First,_Last]确定范围内的元素进行部分求和。其计算结果保存在以_Result为起始的序列中。部分求和的计算步骤:首先,把原序列的第1个元素赋值给新序列的第1个元素;其次,把原序列的前两个元素相加,把结果赋值给新序列的第2个元素;再次,把原序列的第2和第3个元素相加,把结果赋值给新序列的第3个元素;以此类推,直到计算完原序列的全部元素为止。
partial_sum()算法的原型为:
其中,第一种形式用于计算源区间[_First,_Last]中每个元素的部分和,然后将结果写入以result为起点的目标区间;第二种形式包含了一个谓词_Binary_op,对源区间中的每个元素进行_Binary_op处理。
通过以上描述可知,对于序列a,b,c,d,partial_sum使用()算法可产生序列a,a+b,a+b+c,a+b+c+d。
需要注意的问题如:
1)两种形式都返回目标区间内“最后一个被写入的值”的下一位置。
2)源区间和目标区间可以相同。
3)程序员必须确保目标区间足够大,否则需要使用插入型迭代器。
4)谓词_Binary_op不允许修改传入其内的参数。
目前参考资料给出的谓词多为multiplies<T>()等类型。(www.xing528.com)
下面以例6-12说明partial_sum()算法的使用方法。其中给出的谓词为自定义函数。
例6-12
例6-12的执行效果如图6-12所示。
图6-12 例6-12的执行效果
总结
请读者认真阅读例题,尤其注意谓词函数的定义。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。