a のすべての要素を追加する次のコードを検討してくださいvector
。
#include<iostream>
#include<algorithm>
#include<numeric>
#include<vector>
using namespace std;
int main(void)
{
std::vector<double> V;
V.push_back(1.2);
V.push_back(3.6);
V.push_back(5.6);
double sum = accumulate(V.begin(),V.end(),0);
cout << "The sum of the elements of the vector V is " << sum << endl;
return 0;
}
これを Windows の Cygwin でコンパイルして実行すると、ターミナルで次のような出力が得られます。
ベクトル V の要素の合計は 9
このaccumulate
関数は、すべての数値を切り捨てて合計しているように見えます。これで答えが説明されます。
これは、Cygwin g++ コンパイラーに何か問題があるのでしょうか、それとも s を加算するための関数の解釈が間違っているのaccumulate
でしょうか?vector
double