accumulate/積み上げ

提供:cppreference.com
移動: 案内, 検索

文法:

    #include <numeric>
    T accumulate( input_iterator start, input_iterator end, T val );
    T accumulate( input_iterator start, input_iterator end, T val, BinaryFunction f );

val と 範囲[start,end)の要素の全ての合計を求めます。

二項関数 f が与えられた場合、積算時に + 演算子の代わりに f が用いられます。

accumulate 関数は 線形時間で実行します。

例えば、以下のコードは、vector 内の整数を合計する accumulate の使用例です:

#include <iostream>
using std::cout;
#include <vector>
using std::vector;
#include <numeric>
using std::accumulate;
 
int main() {
  vector<int> v;
  const int START = 1, END = 10;
  for( int i = START; i <= END; ++i ) v.push_back(i);
 
  int sum = accumulate( v.begin(), v.end(), 0 );
 
  cout << "sum from " << START << " to " << END << " is " << sum << '\n';
}

関連トピック: adjacent_difference, count, inner_product, partial_sum

個人用ツール
名前空間
変種
操作
案内
ツールボックス
他の言語