c++コンテナのすべての値をすばやく加算(accumulate)

1021 ワード

Accumulate(累積)values in range
accumulateには3つのパラメータがあります.最初の2つのパラメータは、累積する要素の範囲を指定し、3番目のパラメータは累積の初期値です.
テンプレート:
template 
   T accumulate (InputIterator first, InputIterator last, T init)
{
  while (first!=last) {
    init = init + *first;  // or: init=binary_op(init,*first) for the binary_op version
    ++first;
  }
  return init;
}

例:
#include 
#include 
#include 
#include 
using namespace std;

int main()
{
    vector num={1,2,3,4,5,6,7,8,9,10};
    vector str={"1","2","3","4","5"};
    int sum = accumulate(num.begin(),num.end(),0);
    string sum1 = accumulate(str.begin(),str.end(),string(""));
    cout <

注意!!!文字列の加算時に空の列""を初期値として直接使用することはできません.これにより、コンパイラはconst char*タイプとして認識され、このタイプには+操作はありません.