一度に12個の数値を合計して(1年をシミュレートするために)、結果を別のベクトルに追加したいのですが、苦労しているようです。一度に 12 個の数字をループに入れようとしましたが、よくわかりません。これは、私が読んでいるテキスト ファイルのサンプルです。
2 に答える
0
std::accumulate を直接使用できます。
vector<double> result;
for (auto it = begin(rainfall); it+12<=rainfall.end(); it+=12)
result.emplace_back(accumulate(it, it+12, 0));
于 2015-03-02T14:21:05.047 に答える
0
年ごとに値を累積する必要があります。つまり、入力ベクトルの 12 個の連続した要素を意味します。
12 番目の要素にヒットするたびに、アキュムレータは期待値を持ちます。
double currentrain = 0;
for(int i = 0; i < rainfall.size(); ++i) {
// accumulate rain this year
currentrain += rainfall[i];
// i%12==11 on december
if((i%12)!=11)
continue;
// we have accounted each month in this year
sum.push_back(currentrain);
// reset the accumulator for next year
currentrain = 0;
}
于 2015-03-02T14:14:11.343 に答える