重複の可能性:
C++ float 精度に関する質問
std::accumulate を使用して、正の数のみであるベクトル要素の合計を計算する 3 つの方法の中で最も正確な方法を決定するという問題があります。
1)
double sum(vector<float> &v)
{
return accumulate(v.begin(), v.end(), 0.0);
}
2)
double sum(vector<float> &v)
{
sort(v.begin(), v.end());
return accumulate(v.begin(), v.end(), 0.0);
}
3)
double sum(vector<float> &v)
{
sort(v.begin(), v.end(), greater<float>());
return accumulate(v.begin(), v.end(), 0.0);
}
これは一種の就職面接の質問です。そのため、合計を計算するこれらの特定の 3 つの方法を取得しました。いろいろネットで調べましたが違いがわかりませんでした。みんなが理解できるように助けてくれませんか?