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!

你是怎么初始化向量的?里面有什么?你是怎么初始化向量的?里面有什么?