类类型的多维向量

Multidimensional vector of class type

本文关键字:向量 类型      更新时间:2023-10-16

当类型是class时,我需要一点矢量的矢量帮助。"loadTruck"是我的班。我想将我的类"loadTruck"中的值按以下顺序存储到2D向量中:向量(卡车,打印)。"truck"answers"print"都是"loadTruck"类的类型。我想要访问这个向量:例如,让我们说"print"是包,"truck"是卡车。我想知道1号卡车上包裹的信息,包裹编号为20。我完全搞糊涂了。

vector<vector <loadTruck>> jedinecTruck;
loadTruck truck;
while (warehouseIsEmpty == False)
{
    truck.resetTruck();
    for (int i = 0; i < numOfPackages; i++)
    {
        vector<loadTruck> print;
        if (store2D[i].checkIfPackageIsThere() == true)
        {
            truck.setPackageSize(store2D[i].getPackageWidth(), store2D[i].getPackageHeight());
            if (truck.checkIfPackageCanBeLoaded() == true)
            {
                print.push_back(truck);
                truck.loadPackageInTruck();
                store2D[i].deletePackage();
            }
        }
    }
    jedinecTruck.push_back(truck);
}

版本与3 d数组 ,\\\\\\\\\\\\\\\\\\现在程序运行得很好,但数组不是一个好主意,但我希望它能帮助你理解我想做什么。我需要使用向量,因为我不能定义数组的前两个元素,它取决于算法,总是在变化。对于这个例子,我假设前两个元素将被静态地定义。第三个元素总是有4个分量。

    vector<loadTruck> jedinecTruck;
loadTruck truck;
int array[1][3][4];
while (wharehouseIsEmpty == false)
{
    truck.resetTruck();
    for (int i = 0; i < numOfPackages; i++)
    {
        if (store2D[i].checkIfPackageIsThere() == true)
        {
            truck.setPackageSize(store2D[i].getPackageWidth(), store2D[i].getPackageHeight());
            if (truck.checkIfPackageCanBeLoaded() == true)
            {
                truck.loadPackageInTruck();
                store2D[i].deletePackage();
                array[0][i][0] = truck.getActualX1();
                array[0][i][1] = truck.getActualX2();
                array[0][i][2] = truck.getActualY1();
                array[0][i][3] = truck.getActualY2();
            }
        }
    }
    jedinecTruck.push_back(truck);
  }

也许这更接近你想要做的:

vector<vector <loadTruck>> jedinecTruck;
loadTruck truck;
while (warehouseIsEmpty == False)
{
    truck.resetTruck();
    vector<loadTruck> print;
    for (int i = 0; i < numOfPackages; i++)
    {
        if (store2D[i].checkIfPackageIsThere() == true)
        {
            truck.setPackageSize(store2D[i].getPackageWidth(), store2D[i].getPackageHeight());
            if (truck.checkIfPackageCanBeLoaded() == true)
            {
                print.push_back(truck);
                truck.loadPackageInTruck();
                store2D[i].deletePackage();
            }
        }
    }
    jedinecTruck.push_back(print);
}

从你的问题中很难判断。