-1

一度に12個の数値を合計して(1年をシミュレートするために)、結果を別のベクトルに追加したいのですが、苦労しているようです。一度に 12 個の数字をループに入れようとしましたが、よくわかりません。これは、私が読んでいるテキスト ファイルのサンプルです。

4

2 に答える 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 に答える