C++ Numeric::partial_sum() 函数



C++ 的 std::numeric::partial_sum() 函数用于返回元素范围的部分和。它处理一系列数字,并生成一个新序列,其中每个元素都是到该点为止元素的累积和。它还接受二元运算来进行自定义累加。

语法

以下是 std::numeric::partial_sum() 函数的语法。

	
OutputIterator partial_sum (InputIterator first, InputIterator last, OutputIterator result);
or
OutputIterator partial_sum (InputIterator first, InputIterator last, OutputIterator result, BinaryOperation binary_op);

参数

  • first, last − 指示序列中初始和最终位置的迭代器。
  • result − 指向目标序列中存储部分和的初始位置的输出迭代器。
  • binary_op − 二元运算符。

返回值

它返回一个指向目标序列中最后一个元素之后的迭代器,结果元素已存储在其中,如果 [first,last) 是空范围则返回 result。

异常

如果元素或迭代器上的任何操作抛出异常,则抛出异常。

数据竞争

访问范围 [first1,last1) 中的元素。

示例 1

在下面的示例中,我们将考虑 partial_sum() 函数的基本用法。

#include <iostream>
#include <numeric>
#include <vector>
int main() {
   std::vector < int > x = {2,4,6};
   std::vector < int > y(3);
   std::partial_sum(x.begin(), x.end(), y.begin());
   for (int x: y)
      std::cout << x << " ";
   return 0;
}

输出

以上代码的输出如下:

2 6 12

示例 2

考虑下面的示例,我们将使用 partial_sum() 执行简单的加法。

#include <iostream>
#include <numeric>
#include <vector>
int main() {
   std::vector < int > x = {1,3,5};
   std::vector < int > y(x.size());
   std::partial_sum(x.begin(), x.end(), y.begin());
   for (int a: y)
      std::cout << a << " ";
   return 0;
}

输出

以上代码的输出如下:

1 4 9

示例 3

让我们来看下面的例子,我们将执行累积减法。

#include <iostream>
#include <numeric>
#include <vector>
int main() {
   std::vector < int > a = {2,4,6};
   std::vector < int > b(a.size());
   std::partial_sum(a.begin(), a.end(), b.begin(), std::minus < int > ());
   for (int x: b)
      std::cout << x << " ";
   return 0;
}

输出

如果我们运行以上代码,它将生成以下输出:

2 -2 -8
numeric.htm
广告
© . All rights reserved.