0

タイプがクラスの場合、ベクトルのベクトルについて少し助けが必要です。「loadTruck」は私のクラスです。クラス「loadTruck」の値を次の順序で 2D ベクトルに格納したいと思います: vector(truck ,print)。「トラック」と「印刷」はどちらもクラス「loadTruck」のタイプです。このベクトルへのアクセスが必要です。たとえば、「印刷」がパッケージで、「トラック」がトラックであるとしましょう。トラック 1 のパッケージ ID 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);

}

3D 配列を含むバージョン、\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 現在、プログラムは正常に動作していますが、配列良い考えではありませんが、私がやりたいことを理解するのに役立つことを願っています. 配列の最初の 2 つの要素を定義できないため、ベクトルを使用する必要があります。アルゴリズムに依存し、常に変化しています。この例では、最初の 2 つの要素が静的に定義されると仮定します。3 番目の要素には常に 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);
  }

よろしく

4

1 に答える 1

0

おそらく、これはあなたがやろうとしていることにより近いでしょう:

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);

}

ただし、あなたの質問から判断するのは難しいです。

于 2013-04-23T19:39:31.147 に答える