c++コンテナのすべての値をすばやく加算(accumulate)
1021 ワード
Accumulate(累積)values in range
accumulateには3つのパラメータがあります.最初の2つのパラメータは、累積する要素の範囲を指定し、3番目のパラメータは累積の初期値です.
テンプレート:
例:
注意!!!文字列の加算時に空の列""を初期値として直接使用することはできません.これにより、コンパイラはconst char*タイプとして認識され、このタイプには+操作はありません.
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*タイプとして認識され、このタイプには+操作はありません.