我试图在15行输出之后列出四个向量的元素并暂停,到目前为止它完成了我想要的,但它在函数结束时崩溃。
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++;
}
}
我只是遗漏了一些显而易见的东西,厌倦了,对c ++不熟悉也无济于事。
答案 0 :(得分:2)
崩溃是因为当index
== length
时,语句index++
使变量增加,while
再次执行,然后您访问{{1}超出界限。
答案 1 :(得分:2)
由于您在向量之外进行迭代并因此发生崩溃,只需将index<=length
更改为index != length
并且它应该可以正常工作