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.