使用 push_back 将变量存储在向量中

Storing variables in a vector using push_back

我正在尝试使用 push_back 和 for 循环将部分和存储在向量中,但是 push_back 由于某种原因导致无限循环。

cin >> n;

vector <int> partialSums(n);

for (i = 1; i <= partialSums.size(); ++i) {
    sum = sum + i;
    partialSums.push_back(sum);
    cout << sum << endl;
}

return 0;

您创建具有特定大小(n 个元素)的矢量。但是随后您使用 push_back 添加 new 元素并调整向量的大小。这意味着 partialSums.size() 将增加每次迭代,您将拥有无限循环。

要么使用i - 1作为索引设置元素:

partialSums[i - 1] = sum;

或者只是 reserve 所需的容量。

或者,如评论中所述,使用 i <= n 作为条件,因为 n 在循环中不会改变。