我正在尝试创建一个向量,其中每个元素都是低于 1000 的 3 的倍数。我尝试了两种方法,其中只有一种有效。无效的方式是:
int main() {
vector<int> multiples_of_three;
for (int i = 0; i <= 1000/3; ++i)
multiples_of_three[i] = 3*i;
cout << multiples_of_three[i] << "\n";
}
这给出了一个超出范围的错误,特别是在multiples_of_three[i]
. 下一段代码起作用了:
int main() {
vector<int> multiples_of_three(334);
for (int i = 0; i < multiples_of_three.size(); ++i) {
multiples_of_three[i] = 3*i;
cout << multiples_of_three[i];
}
因此,如果我定义了向量的大小,我可以将其保持在它的约束范围内。为什么如果我尝试让 for 循环指示元素的数量,我会得到超出范围的错误?
谢谢!