C++ 列出向量元素(C+;+;)时程序崩溃
我试图在15行输出后暂停列出四个向量的元素,到目前为止,它满足了我的要求,但在函数结束时崩溃了C++ 列出向量元素(C+;+;)时程序崩溃,c++,crash,C++,Crash,我试图在15行输出后暂停列出四个向量的元素,到目前为止,它满足了我的要求,但在函数结束时崩溃了 void List(vector<string> itemNumb, vector<string> itemName, vector<double> itemCost, vector<int> itemQuant, int length, int index) { index = 0; length = i
void List(vector<string> itemNumb, vector<string> itemName, vector<double> itemCost, vector<int> itemQuant, int length, int index)
{
index = 0;
length = itemNumb.size();
while (index <= length)
{
cout << "======================" << endl;
cout << itemNumb[index] << endl;
cout << itemName[index] << endl;
cout << itemCost[index] << endl;
cout << itemQuant[index] << endl;
if (index % 15 == 14)
{
system("pause");
system("cls");
}
index++;
}
}
void列表(vector itemnum、vector itemName、vector itemCost、vector itemQuant、int length、int index)
{
指数=0;
长度=itemNumb.size();
while(index它崩溃,因为当index
==length
时,语句index++
使变量增加,while
再次执行,然后您访问itemnum[length+1]
超出了边界。它崩溃是因为当索引=长度时,语句索引+
使变量增加,同时执行一次,然后访问ItemNum[length+1]
这超出了边界。因为你在向量之外进行迭代,因此会发生崩溃,只需更改索引因为你在向量之外进行迭代,因此会发生崩溃,只需更改索引。这就是为什么在我看来,使用循环在容器/数组等中进行迭代更安全的原因。这就是为什么,在我看来,我认为使用循环遍历容器/数组等更安全。