Wie am besten Code verkürzen bei der Ausgabe von mehrdimensionalen Arrays?



  • Hallo,

    ich möchte, wie der eigentliche Titel es schon sagt, einen großen mehrdimensionalen Array möglichst mit wenig Codezeilen ausgeben. Jedoch weiß ich jetzt nicht wie man es am besten machen kann. Mein Code besteht aus einen Array und wird mittels einer for-Schleife ausgeben, wobei schon alleine die for-Schleife 12 Zeilen lang ist(ohne die geschweiften Klammern). Wie könnte man nun am einfachsten das in einer einzingen for-Schleife ausgeben? Hier mein Code:

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        // Deklaration des Arrays
        int array[2][3][2];
    
        // Initialisieren des Arrays
        array[0][0][0] = 1;
        array[0][0][1] = 2;
        array[0][1][0] = 3;
        array[0][1][1] = 4;
        array[0][2][0] = 5;
        array[0][2][1] = 6;
        array[1][0][0] = 7;
        array[1][0][1] = 8;
        array[1][1][0] = 9;
        array[1][1][1] = 10;
        array[1][2][0] = 11;
        array[1][2][1] = 12;
    
        // Chronologische ausgabe des Arrays
        for(int i = 0; i < 2; i++)
                cout << array[0][0][i] << endl;
    
        for(int i = 0; i < 2; i++)
                cout << array[0][1][i] << endl;
    
        for(int i = 0; i < 2; i++)
                cout << array[0][2][i] << endl;
    
        for(int i = 0; i < 2; i++)
                cout << array[1][0][i] << endl;
    
        for(int i = 0; i < 2; i++)
                cout << array[1][1][i] << endl;
    
        for(int i = 0; i < 2; i++)
                cout << array[1][2][i] << endl;
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    😕



  • Einfach für jede Dimension eine Schleifen"ebene" ineinanderschachteln:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int array[2][3][2];
       //Array füllen spare ich mir
       for(int i = 0; i < 2; ++i)
       {
           for(int j = 0; j < 3; ++j)
           {
                for(int k = 0; k < 2; ++k)
                {
                     cout << array[i][j][k] << endl;
                }
           }
       }
    }
    

    Felix



  • Vielen Dank! 👍


Anmelden zum Antworten