Mehrdimensionale C ++ - Arrays (2. und 3D-Arrays)

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

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

 int x(3)(4);

Hier ist x 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.

Elemente in zweidimensionalen Arrays in der C ++ - Programmierung

In ähnlicher Weise funktionieren auch dreidimensionale Arrays. Beispielsweise:

 float x(2)(4)(3);

Dieses Array x kann maximal 24 Elemente enthalten.

Wir können die Gesamtzahl der Elemente im Array einfach durch Multiplikation seiner Dimensionen ermitteln:

 2 x 4 x 3 = 24

Mehrdimensionale Array-Initialisierung

Wie bei einem normalen Array können wir ein mehrdimensionales Array auf mehrere Arten initialisieren.

1. Initialisierung eines zweidimensionalen Arrays

 int test(2)(3) = (2, 4, 5, 9, 0, 19);

Das obige Verfahren ist nicht bevorzugt. Eine bessere Möglichkeit, 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 Elementreihen mit jeweils 3 Elementen haben.

Initialisieren eines zweidimensionalen Arrays in C ++

2. Initialisierung eines 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, um 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 zwei Elemente, aus denen sich die erste Dimension zusammensetzt, sind:

 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 enthält:

 (3, 4, 2, 3), (0, -3, 9, 11) und (23, 12, 23, 2) für Element 1. (13, 4, 56, 3), (5, 9, 3 , 5) und (5, 1, 4, 9) für Element 2.

Schließlich gibt es intin jedem der Elemente der zweiten Dimension vier Zahlen:

 (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 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 ein zweidimensionales intArray mit dem Namen test initialisiert , das 3 "Zeilen" und 2 "Spalten" enthält.

Hier haben wir die verschachtelte forSchleife verwendet, um die Array-Elemente anzuzeigen.

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

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

Beispiel 2: Eingabe für zweidimensionales Array

 #include 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 > 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

 Geben Sie 6 Zahlen ein: 1 2 3 4 5 6 Die Zahlen sind: Zahlen (0) (0): 1 Zahlen (0) (1): 2 Zahlen (0) (2): 3 Zahlen (1) (0): 4 Zahlen (1) (1): 5 Zahlen (1) (2): 6

Hier haben wir eine verschachtelte forSchleife verwendet, um die Eingabe des 2d-Arrays zu übernehmen. Nachdem alle Eingaben vorgenommen wurden, haben wir eine weitere verschachtelte forSchleife verwendet, um die Array-Mitglieder zu drucken.

Beispiel 3: Dreidimensionales Array

 // C++ Program to Store value entered by user in // three dimensional array and display it. #include 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 zum Drucken von Elementen eines 3D-Arrays ähnelt dem eines 2D-Arrays.

Da wir jedoch 3 Dimensionen bearbeiten, verwenden wir eine verschachtelte for-Schleife mit 3 Gesamtschleifen anstelle von nur 2:

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

Wie wir sehen können, nimmt die Komplexität des Arrays mit zunehmenden Dimensionen exponentiell zu.

Interessante Beiträge...