BESTE WEBSITE FÜR WEBENTWICKLER

C++ Lernprogramm

C++ HEIM C++ Einführung C++ Loslegen C++ Syntax C++ Ausgabe C++-Kommentare C++-Variablen C++-Benutzereingabe C++-Datentypen C++ Betreiber C++-Strings C++ Math C++ Booleans C++-Bedingungen C++ Switch C++ While-Schleife C++ For-Schleife C++ Break/Continue C++-Arrays C++-Strukturen C++-Aufzählungen C++-Referenzen C++ Hinweise

C++ Funktionen

C++-Funktionen C++-Funktionsparameter Überladen von C++-Funktionen C++-Bereich C++-Rekursion

C++-Klassen

C++ OOP C++-Klassen/Objekte C++-Klassenmethoden C++-Konstruktoren C++-Zugriffsspezifizierer C++-Kapselung C++-Vererbung C++-Polymorphismus C++-Dateien C++-Ausnahmen C++-Datum

C++ Wie man

Zwei Zahlen hinzufügen Zufallszahlen

C++-Referenz

C++-Referenz C++-Schlüsselwörter C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime>

C++-Beispiele

C++-Beispiele C++-Compiler C++-Übungen C++-Quiz C++-Zertifikat

C++ Sprache. W3Schools auf Deutsch. Unterricht für Anfänger

Ua En Es

C++ Mehrdimensionale Arrays


Mehrdimensionale Arrays

Ein mehrdimensionales Array ist ein Array von Arrays.

Um ein mehrdimensionales Array zu deklarieren, definieren Sie den Variablentyp, geben Sie den Namen des Arrays an, gefolgt von eckigen Klammern, die angeben, wie viele Elemente das Hauptarray hat, gefolgt von einem weiteren Satz eckiger Klammern, die angeben, wie viele Elemente die Unterarrays haben:

string letters[2][4];

Wie bei gewöhnlichen Arrays können Sie Werte mit einem Array-Literal einfügen – einer durch Kommas getrennten Liste in geschweiften Klammern. In einem mehrdimensionalen Array ist jedes Element in einem Array-Literal ein anderes Array-Literal.

string letters[2][4] = {
  { "A", "B", "C", "D" },
  { "E", "F", "G", "H" }
};

Jeder Satz eckiger Klammern in einer Array-Deklaration fügt einem Array eine weitere Dimension hinzu. Ein Array wie das obige soll zwei Dimensionen haben.

Arrays können beliebig viele Dimensionen haben. Je mehr Dimensionen ein Array hat, desto komplexer wird der Code. Das folgende Array hat drei Dimensionen:

string letters[2][2][2] = {
  {
    { "A", "B" },
    { "C", "D" }
  },
  {
    { "E", "F" },
    { "G", "H" }
  }
};

Greifen Sie auf die Elemente eines mehrdimensionalen Arrays zu

Um auf ein Element eines mehrdimensionalen Arrays zuzugreifen, geben Sie in jeder Dimension des Arrays eine Indexnummer an.

Diese Anweisung greift auf den Wert des Elements in der ersten Zeile (0) und dritten Spalte (2) des Arrays Buchstaben zu.

Beispiel

string letters[2][4] = {
  { "A", "B", "C", "D" },
  { "E", "F", "G", "H" }
};

cout << letters[0][2];  // Ausgänge "C"
Try it Yourself »

Denken Sie daran: Array-Indizes beginnen mit 0: [0] ist das erste Element. [1] ist das zweite Element usw.


Elemente in einem mehrdimensionalen Array ändern

Um den Wert eines Elements zu ändern, beziehen Sie sich auf die Indexnummer des Elements in jeder der Dimensionen:

Beispiel

string letters[2][4] = {
  { "A", "B", "C", "D" },
  { "E", "F", "G", "H" }
};
letters[0][0] = "Z";

cout << letters[0][0];  // Now outputs "Z" instead of "A"
Try it Yourself »

Schleife durch ein mehrdimensionales Array

Um ein mehrdimensionales Array zu durchlaufen, benötigen Sie eine Schleife für jede Dimension des Arrays.

Das folgende Beispiel gibt alle Elemente im Array Buchstaben aus:

Beispiel

string letters[2][4] = {
  { "A", "B", "C", "D" },
  { "E", "F", "G", "H" }
};

for (int i = 0; i < 2; i++) {
  for (int j = 0; j < 4; j++) {
    cout << letters[i][j] << "\n";
  }
}
Try it Yourself »

Dieses Beispiel zeigt, wie ein dreidimensionales Array durchlaufen wird:

Beispiel

string letters[2][2][2] = {
  {
    { "A", "B" },
    { "C", "D" }
  },
  {
    { "E", "F" },
    { "G", "H" }
  }
};

for (int i = 0; i < 2; i++) {
  for (int j = 0; j < 2; j++) {
    for (int k = 0; k < 2; k++) {
      cout << letters[i][j][k] << "\n";
    }
  }
}
Try it Yourself »

Warum mehrdimensionale Arrays?

Mehrdimensionale Arrays eignen sich hervorragend zur Darstellung von Gittern. Dieses Beispiel zeigt einen praktischen Nutzen für sie. Im folgenden Beispiel verwenden wir ein mehrdimensionales Array, um ein kleines Battleship-Spiel darzustellen:

Beispiel

// We put "1" to indicate there is a ship.
bool ships[4][4] = {
  { 0, 1, 1, 0 },
  { 0, 0, 0, 0 },
  { 0, 0, 1, 0 },
  { 0, 0, 1, 0 }
};

// Keep track of how many hits the player has and how many turns they have played in these variables
int hits = 0;
int numberOfTurns = 0;

// Allow the player to keep going until they have hit all four ships
while (hits < 4) {
  int row, column;

  cout << "Selecting coordinates\n";

  // Ask the player for a row
  cout << "Choose a row number between 0 and 3: ";
  cin >> row;

  // Ask the player for a column
  cout << "Choose a column number between 0 and 3: ";
  cin >> column;

  // Check if a ship exists in those coordinates
  if (ships[row][column]) {
    // If the player hit a ship, remove it by setting the value to zero.
    ships[row][column] = 0;

    // Increase the hit counter
    hits++;

    // Tell the player that they have hit a ship and how many ships are left
    cout << "Hit! " << (4-hits) << " left.\n\n";
  } else {
    // Tell the player that they missed
    cout << "Miss\n\n";
  }

  // Count how many turns the player has taken
  numberOfTurns++;
}

cout << "Victory!\n";
cout << "You won in " << numberOfTurns << " turns";
Beispiel ausführen »


Kommentare