0

我试图在 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++ 也无济于事。

4

2 回答 2

2

它崩溃是因为当index==时length,该语句index++使变量增加,while再执行一次,然后您正在访问itemNumb[length+1]超出边界的内容。

于 2013-05-17T10:56:41.960 回答
2

由于您在向量之外进行迭代并因此发生崩溃,因此只需更改index<=lengthindex != length它应该可以工作

于 2013-05-17T10:57:56.060 回答