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
bisi == 2
auf die Zeilen des Arrays zugreifen - die innere Schleife von
j == 0
bisj == 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
bisi == 1
greift auf die erste Dimension des Arrays zu - die mittlere Schleife von
j == 0
bisj == 2
greift auf die zweite Dimension des Arrays zu - die innerste Schleife von
k == 0
bisk == 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
- C#-Arrays
- C# Mehrdimensionales Array
- C#-gezacktes Array
- C++-Operatoren
- C++-Kommentare
- Übergeben eines Arrays an eine Funktion in der C++-Programmierung
- Java-Kopie-Arrays
- Arrays in C++ | Erklären | Initialisieren | Zeiger auf Array-Beispiele
- C++ Dynamische Zuordnung von Arrays mit Beispiel
- MATLAB - Arrays