各要素が 1000 未満の 3 の倍数であるベクトルを作成しようとしています。2 つの方法を試しましたが、そのうちの 1 つだけが機能しました。機能しない方法は次のとおりです。
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 ループに要素数を指定させようとすると、範囲外エラーが発生するのはなぜですか?
ありがとう!