我得到的矢量下标超出了范围错误。我之前已经拥有它,但是它在'之前'打印但它不会'打印'之后'所以我很困惑为什么其中一条线会导致它。
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;
答案 0 :(得分: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)
坚持这一点,除非你有非常好的理由做出例外,你可以“免费”避免这种类型的错误。