1

ベクトル添え字が範囲外エラーになっています。以前に使用したことがありますが、「前」は印刷されますが、「後」は印刷されないため、これらの行の1つが原因である理由がわかりません。

cout << "before" << endl;
vector<vector<char>> animals;
vector<vector<char>> food;
vector<char> other;
int lastline = 0;
for(int i=1;i<=(c);i++){
cout << "after" << endl;
4

1 に答える 1

2

が任意のベクトルの要素の数である場合c、間違いは、アイテムを含むベクトルではN、アイテムのインデックスが0...[N-1]であり、ではないということ1...Nです。

したがって、次の修正を行います。

for(int i=0; i < (c); i++) {

ちなみに、Cのような言語では、時間forを繰り返すループの原型はN、偶然ではありません。

for(int i = 0; i < N; ++i)

例外を設ける非常に正当な理由がない限り、これに固執し、このタイプのバグを「無料で」回避することができます。

于 2011-05-07T11:56:12.227 に答える