C++ 这种矢量编码有什么问题?(初学者)
我想做一个循环来显示向量中的元素,从第一个和下一个,第二个和下一个,第三个和下一个直到最后一个。然而,当我运行这个错误弹出说矢量下标超出范围…任何建议请 我是初学者C++ 这种矢量编码有什么问题?(初学者),c++,vector,C++,Vector,我想做一个循环来显示向量中的元素,从第一个和下一个,第二个和下一个,第三个和下一个直到最后一个。然而,当我运行这个错误弹出说矢量下标超出范围…任何建议请 我是初学者 for (int i = 0; i < vecB.size(); i++) { cout << vecB[i]; cout << " "; cout << vecB[i + 1]; } for(int i=0;i
for (int i = 0; i < vecB.size(); i++)
{
cout << vecB[i]; cout << " "; cout << vecB[i + 1];
}
for(int i=0;ivecB.size()
为5,则在循环的最后一次迭代中,i
将为4。这将是i
的最后一次值,在for
循环的最后一次迭代中。现在,取下此循环的主体:
cout << vecB[i]; cout << " "; cout << vecB[i + 1];
cout例如,如果vecB.size()
为5,则在循环的最后一次迭代中,i
将为4。这将是i
的最后一次值,在for
循环的最后一次迭代中。现在,取下该循环的主体:
cout << vecB[i]; cout << " "; cout << vecB[i + 1];
cout在循环的最后一次迭代中,您显示最后一个项目和它后面不存在的项目,因此错误在循环的最后一次迭代中,您显示最后一个项目和它后面不存在的项目,因此错误让我们想象一下vecB.size()==3
让我们来看看这个循环:
for (int i = 0; i != vecB.size(); ++i)
cout << vecB.at(i) << " " << vecB.at(i + 1);
// 0 1
for (int i = 0; i != vecB.size(); ++i)
cout << vecB.at(i) << " " << vecB.at(i + 1);
// 1 2
for (int i = 0; i != vecB.size(); ++i)
cout << vecB.at(i) << " " << vecB.at(i + 1);
// 2 3! out of range!
让我们想象一下vecB.size()==3
让我们来看看这个循环:
for (int i = 0; i != vecB.size(); ++i)
cout << vecB.at(i) << " " << vecB.at(i + 1);
// 0 1
for (int i = 0; i != vecB.size(); ++i)
cout << vecB.at(i) << " " << vecB.at(i + 1);
// 1 2
for (int i = 0; i != vecB.size(); ++i)
cout << vecB.at(i) << " " << vecB.at(i + 1);
// 2 3! out of range!
你是怎么初始化向量的?里面有什么?你是怎么初始化向量的?里面有什么?