使用 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
在循环中不会改变。
我正在尝试使用 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
在循环中不会改变。