accumulate()

accumulate()は、指定した範囲のすべての要素の値を累算した結果を計算します。

accumulate()は次の書式で使います。


    #include<numeric>
    template T accumulate(iiter first, iiter last, T val);
    template T accumulate(iiter first, iiter last, T val, pred pr);
    

引数firstは最初の要素の反復子、lastは最後の要素の反復子、valはアキュムレーターを初期化する値、 prは各要素に適用するバイナリ操作です。

次の例は、整数値1~10をベクタに保存し、アルゴリズムaccumulate()を使って合計を求め、出力するプログラムの例です。


    #include <numeric>
    #include <vector>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
       typedef vector<int>::iterator iterator;
       int d[10] = {1,2,3,4,5,6,7,8,9,10};
       vector<int> v(d, d+10);
    
       int sum = accumulate(v.begin(), v.end(), 0);
       cout << "1~10の合計= " << sum << endl;
    
       return 0;
    }
  

実行結果は次のようになります。


    1~10の合計= 55
  

関連項目

vector


コンテナ目次 C++目次 inserted by FC2 system