-1

我想一次将 12 个数字相加(模拟一年),然后将结果添加到一个单独的向量中,但我似乎很挣扎。我试图一次让 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 回答