首页 > 解决方案 > 尽管有打印功能,我的 Vector 没有打印

问题描述

我正在开发一个程序,该程序将使用对象的特定参数建立一个组合餐类。我将这些存储在向量中。矢量似乎运行正常,但是当我使用打印功能时,它没有打印任何东西。我需要帮助才能使打印功能正常运行。

我尝试使用 .at() 而不是 getEntree() 但仍然没有收到任何输出。我在这里阅读了几篇关于从矢量打印的文章,但仍然无法从我的程序中获得任何输出。

#include <iostream>
#include <string>
#include <vector>
#include "Combo.h"


void fillOrder(vector<Combo>);
void printOrder(vector<Combo>);

int main()
{
    vector<Combo> myOrder;

    fillOrder(myOrder);
    printOrder(myOrder);
}

vector<Combo> newMyOrder;
void fillOrder(vector<Combo> newMyOrder) {
    string entree;
    string side;
    string sideSize;
    string drink;
    string drinkSize;

    cout << "How many meals would you like to order? ";
    int orderSize;
    cin >> orderSize;

    for (int i=0; i < orderSize; i++) {
        cout << "Would you like a Hamburger, Cheeseburger, or chicken?" << endl;
        cin >> entree;
        cout << "Would you like fries, tots, or a salad for your side?" << endl;
        cin >> side;
        cout << "What size would you like your side?" << endl;
        cin >> sideSize;
        cout << "What would you like to drink?" << endl;
        cin >> drink;
        cout << "What size drink would you like?" << endl;
        cin >> drinkSize;

        Combo newMeal(entree, side, sideSize, drink, drinkSize);
        newMyOrder.push_back(newMeal);

    }
}
    void printOrder(vector<Combo>newMyCombo) {
        unsigned int size = newMyCombo.size();

        for (unsigned int i = 0; i < size; i++) {
            cout << "Your Entree is : " << newMyCombo[i].getEntree()<<endl;
            cout << "Your side is : " << newMyCombo[i].getSide()<<endl;
        }
    }

我希望这个程序接受订单然后打印订单摘要,但我根本没有得到任何输出。

标签: c++vector

解决方案


通过引用传递

尝试:

void fillOrder(vector<Combo>&);

void fillOrder(vector<Combo>& newMyOrder)

如果您希望打印功能不适用于副本(因为它只是打印订单),请void printOrder(const vector<Combo>&);改用。const限定符会给你一个编译保证,一个不应该修改容器的函数实际上并没有这样做。通过引用将其传递给 print 将确保您不会浪费时间和空间来复制整个内容。


推荐阅读