我正在尝试使用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)
您创建具有特定大小的向量(n元素)。但是然后您使用push_back来添加新元素并调整向量的大小。这意味着partialSums.size()将增加每次迭代,您将遇到无限循环。
既可以使用i - 1作为索引来设置的元素:
partialSums[i - 1] = sum;
Run Code Online (Sandbox Code Playgroud)
或者只是保留所需的容量。
或者,如注释中所述,将其i <= n用作条件,因为n循环中未更改。