Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C++ Mehrdimensionale Arrays

Mehrdimensionale C++-Arrays

In diesem Tutorial lernen wir mehrdimensionale Arrays in C++ kennen. Genauer gesagt, wie man sie deklariert, auf sie zugreift und sie effizient in unserem Programm verwendet.

In C++ können wir ein Array eines Arrays erstellen, das als mehrdimensionales Array bezeichnet wird. Zum Beispiel:

int x[3][4];

Hier, x ist ein zweidimensionales Array. Es kann maximal 12 Elemente aufnehmen.

Wir können uns dieses Array als eine Tabelle mit 3 Zeilen vorstellen, und jede Zeile hat 4 Spalten, wie unten gezeigt.

Auch dreidimensionale Arrays funktionieren auf ähnliche Weise. Zum Beispiel:

float x[2][4][3];

Dieses Array x kann maximal 24 Elemente aufnehmen.

Wir können die Gesamtzahl der Elemente im Array herausfinden, indem wir einfach seine Dimensionen multiplizieren:

2 x 4 x 3 = 24

Multidimensionale Array-Initialisierung

Wie ein normales Array können wir ein mehrdimensionales Array auf mehr als eine Weise initialisieren.

1. Initialisierung eines zweidimensionalen Arrays

int test[2][3] = {2, 4, 5, 9, 0, 19};

Das obige Verfahren ist nicht bevorzugt. Ein besserer Weg, dieses Array mit denselben Array-Elementen zu initialisieren, ist unten angegeben:

int  test[2][3] = { {2, 4, 5}, {9, 0, 19}};

Dieses Array hat 2 Zeilen und 3 Spalten, weshalb wir zwei Elementzeilen mit jeweils 3 Elementen haben.


2. Initialisierung des dreidimensionalen Arrays

int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 
                 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};

Dies ist keine gute Möglichkeit, ein dreidimensionales Array zu initialisieren. Ein besserer Weg, dieses Array zu initialisieren, ist:

int test[2][3][4] = { 
                     { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },
                     { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }
                 };

Beachten Sie die Abmessungen dieses dreidimensionalen Arrays.

Die erste Dimension hat den Wert 2 . Die beiden Elemente der ersten Dimension sind also:

Element 1 = { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} }
Element 2 = { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }

Die zweite Dimension hat den Wert 3 . Beachten Sie, dass jedes der Elemente der ersten Dimension jeweils drei Elemente hat:

{3, 4, 2, 3}, {0, -3, 9, 11} and {23, 12, 23, 2} for Element 1.
{13, 4, 56, 3}, {5, 9, 3, 5} and {5, 1, 4, 9} for Element 2.

Schließlich gibt es noch vier int Zahlen in jedem der Elemente der zweiten Dimension:

{3, 4, 2, 3}
{0, -3, 9, 11}
... .. ...
... .. ...

Beispiel 1:Zweidimensionales Array

// C++ Program to display all elements
// of an initialised two dimensional array

#include <iostream>
using namespace std;

int main() {
    int test[3][2] = {{2, -5},
                      {4, 0},
                      {9, 1}};

    // use of nested for loop
    // access rows of the array
    for (int i = 0; i < 3; ++i) {

        // access columns of the array
        for (int j = 0; j < 2; ++j) {
            cout << "test[" << i << "][" << j << "] = " << test[i][j] << endl;
        }
    }

    return 0;
}

Ausgabe

test[0][0] = 2
test[0][1] = -5
test[1][0] = 4
test[1][1] = 0
test[2][0] = 9
test[2][1] = 1

Im obigen Beispiel haben wir einen zweidimensionalen int initialisiert Array namens test das hat 3 "Zeilen" und 2 "Spalten".

Hier haben wir den verschachtelten for verwendet Schleife, um die Array-Elemente anzuzeigen.

  • die äußere Schleife von i == 0 bis i == 2 auf die Zeilen des Arrays zugreifen
  • die innere Schleife von j == 0 bis j == 1 auf die Spalten des Arrays zugreifen

Schließlich drucken wir die Array-Elemente in jeder Iteration.


Beispiel 2:Eingabe für ein zweidimensionales Array übernehmen

#include <iostream>
using namespace std;

int main() {
    int numbers[2][3];

    cout << "Enter 6 numbers: " << endl;

    // Storing user input in the array
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> numbers[i][j];
        }
    }

    cout << "The numbers are: " << endl;

    //  Printing array elements
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << "numbers[" << i << "][" << j << "]: " << numbers[i][j] << endl;
        }
    }

    return 0;
}

Ausgabe

Enter 6 numbers: 
1
2
3
4
5
6
The numbers are:
numbers[0][0]: 1
numbers[0][1]: 2
numbers[0][2]: 3
numbers[1][0]: 4
numbers[1][1]: 5
numbers[1][2]: 6

Hier haben wir einen verschachtelten for verwendet Schleife, um die Eingabe des 2d-Arrays zu übernehmen. Nachdem alle Eingaben vorgenommen wurden, haben wir einen weiteren verschachtelten for verwendet Schleife, um die Array-Mitglieder auszugeben.


Beispiel 3:Dreidimensionales Array

// C++ Program to Store value entered by user in
// three dimensional array and display it.

#include <iostream>
using namespace std;

int main() {
    // This array can store upto 12 elements (2x3x2)
    int test[2][3][2] = {
                            {
                                {1, 2},
                                {3, 4},
                                {5, 6}
                            }, 
                            {
                                {7, 8}, 
                                {9, 10}, 
                                {11, 12}
                            }
                        };

    // Displaying the values with proper index.
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                cout << "test[" << i << "][" << j << "][" << k << "] = " << test[i][j][k] << endl;
            }
        }
    }

    return 0;
}

Ausgabe

test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12

Das Grundkonzept des Druckens von Elementen eines 3D-Arrays ähnelt dem eines 2D-Arrays.

Da wir jedoch 3 Dimensionen manipulieren, verwenden wir eine verschachtelte for-Schleife mit insgesamt 3 Schleifen statt nur 2:

  • die äußere Schleife von i == 0 bis i == 1 greift auf die erste Dimension des Arrays zu
  • die mittlere Schleife von j == 0 bis j == 2 greift auf die zweite Dimension des Arrays zu
  • die innerste Schleife von k == 0 bis k == 1 greift auf die dritte Dimension des Arrays zu

Wie wir sehen können, steigt die Komplexität des Arrays exponentiell mit der Zunahme der Dimensionen.


C Sprache

  1. C#-Arrays
  2. C# Mehrdimensionales Array
  3. C#-gezacktes Array
  4. C++-Operatoren
  5. C++-Kommentare
  6. Übergeben eines Arrays an eine Funktion in der C++-Programmierung
  7. Java-Kopie-Arrays
  8. Arrays in C++ | Erklären | Initialisieren | Zeiger auf Array-Beispiele
  9. C++ Dynamische Zuordnung von Arrays mit Beispiel
  10. MATLAB - Arrays