Ein 2D Array in C++ dient dazu, Daten über­sicht­lich in Ta­bel­len­form zu or­ga­ni­sie­ren. In der Ma­the­ma­tik, speziell in der linearen Algebra, sind 2D Arrays die ideale Struktur, um Matrizen ab­zu­bil­den.

Was genau ist ein 2D Array in C++?

Ein 2D Array in C++ ist eine Da­ten­struk­tur, mit der du Elemente in einer zwei­di­men­sio­na­len, ras­ter­ähn­li­chen Anordnung spei­cherst. Im Un­ter­schied zu einfachen Arrays, die nur eine Da­ten­rei­he enthalten, struk­tu­riert ein 2D Array In­for­ma­tio­nen in Zeilen und Spalten. Jedes Element ist dabei über seine exakte Position (Zeilen- und Spal­ten­in­dex) definiert. Dieser Aufbau macht es dir leicht, gezielt auf Da­ten­punk­te zu­zu­grei­fen oder diese zu be­ar­bei­ten. Die Ein­satz­be­rei­che reichen von komplexen Matrix-Be­rech­nun­gen bis hin zur Ver­wal­tung von Ras­ter­gra­fi­ken.

So ist ein 2D Array in C++ aufgebaut

Die De­kla­ra­ti­on eines 2D Arrays in C++ folgt dieser Syntax:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Hier legst du fest, welcher Datentyp ge­spei­chert wird – etwa int für Ganz­zah­len, double für Kom­ma­zah­len oder auch eigene Da­ten­ty­pen.
  • arrayName: Das ist die Be­zeich­nung, mit der du das gesamte Array im Code an­sprichst.
  • num_rows: Diese Angabe bestimmt die Zei­len­an­zahl deines 2D Arrays.
  • num_cols: Hiermit de­fi­nierst du, wie viele Spalten pro Zeile vorhanden sind.

Im folgenden Beispiel erstellen wir ein 2D Array namens matrix mit 3 Zeilen und 4 Spalten, was Platz für insgesamt 12 Elemente bietet.

int matrix[3][4] = {{1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}};
c++

Das 2D Array in C++ ausgeben

Um ein 2D Array am Bild­schirm an­zu­zei­gen, nutzt du am besten eine for-Schleife. Die äußere Schleife steuert die Zeilen an, während die innere Schleife die einzelnen Spalten durch­läuft. Mit std::cout << matrix[i][j] << " "; gibst du den Wert aus. Durch std::cout << std::endl; wird nach jeder Zeile ein Umbruch eingefügt, damit die Ta­bel­len­struk­tur erhalten bleibt.

#include <iostream>
int main() {
    int matrix[3][4] = {{1, 2, 3, 4},
                        {5, 6, 7, 8},
                        {9, 10, 11, 12}};
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 4; ++j) {
            std::cout << matrix[i][j] << " ";
        }
 
        std::cout << std::endl;
    }
    return 0;
}
c++

Die Ausgabe zeigt die Werte des 2D Arrays schön sortiert:

1 2 3 4
5 6 7 8
9 10 11 12
c++

Prak­ti­sche Beispiele für C++ Two-Di­men­sio­nal Arrays

Wenn du C++ lernen möchtest, kommst du an Arrays nicht vorbei. Hier siehst du zwei typische Szenarien für die Ver­wen­dung von 2D Arrays.

Be­nut­zer­ein­ga­ben im 2D Array ver­ar­bei­ten

In diesem Beispiel de­fi­nie­ren wir die Werte nicht vorab, sondern lassen sie direkt eingeben. Das Programm fragt erst nach der ge­wünsch­ten Anzahl an Zeilen und Spalten und fordert dich danach auf, die einzelnen Felder zu befüllen:

#include <iostream>
int main() {
    int numRows, numCols;
    std::cout << "Number of rows: ";
    std::cin >> numRows;
    std::cout << "Number of columns: ";
    std::cin >> numCols;
    int userArray[numRows][numCols];
    std::cout << "Please enter in elements:\n";
    for (int i = 0; i < numRows; ++i) {
        for (int j = 0; j < numCols; ++j) {
            std::cout << "Element [" << i << "][" << j << "]: ";
            std::cin >> userArray[i][j];
        }
    }
    std::cout << "2D array:\n";
    for (int i = 0; i < numRows; ++i) {
        for (int j = 0; j < numCols; ++j) {
            std::cout << userArray[i][j] << " ";
        }
        std::cout << std::endl;
    }
    return 0;
}
c++

Gibst du etwa 2 Zeilen, 3 Spalten und die Werte 1, 2, 3, 4, 5, 6 ein, sieht das Ergebnis so aus:

2D array:
1 2 3
4 5 6
c++

Matrizen addieren mit 2D Arrays

Mithilfe von C-Ope­ra­to­ren wie + lassen sich ma­the­ma­ti­sche Matrizen in C++ effizient zu­sam­men­füh­ren.

#include <iostream>
const int numRows = 2; 
const int numCols = 2; 
void matrixAddition(int A[][numCols], int B[][numCols], int result[][numCols]) {
    for (int i = 0; i < numRows; ++i) {
        for (int j = 0; j < numCols; ++j) {
            result[i][j] = A[i][j] + B[i][j];
        }
    }
}
void displayMatrix(int matrix[][numCols]) {
    for (int i = 0; i < numRows; ++i) {
        for (int j = 0; j < numCols; ++j) {
            std::cout << matrix[i][j] << " ";
        }
        std::cout << std::endl;
    }
}
int main() {
    int matrixA[numRows][numCols] = {{1, 2}, {3, 4}};
    int matrixB[numRows][numCols] = {{5, 6}, {7, 8}};
    int resultMatrix[numRows][numCols];
    matrixAddition(matrixA, matrixB, resultMatrix);
    // Output of matrix A and B and their sum
    std::cout << "Matrix A:\n";
    displayMatrix(matrixA);
    std::cout << "\nMatrix B:\n";
    displayMatrix(matrixB);
    std::cout << "\nSum (A + B):\n";
    displayMatrix(resultMatrix);
    return 0;
}
c++

Zuerst de­fi­nie­ren wir die 2x2-Matrizen A und B. Das Programm berechnet die Summe und speichert sie in einer neuen Matrix. Die Funktion matrixAddition übernimmt dabei die Re­chen­ar­beit, während displayMatrix das Resultat über­sicht­lich in der Konsole ausgibt.

Das Ergebnis der Be­rech­nung:

Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12
c++
Zum Hauptmenü