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

-3 c++ vector 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;
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 7

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

既可以使用i - 1作为索引来设置的元素:

partialSums[i - 1] = sum;
Run Code Online (Sandbox Code Playgroud)

或者只是保留所需的容量。

或者,如注释中所述,将其i <= n用作条件,因为n循环中未更改。