So nutzt du 2D-Arrays in C++ richtig
Ein 2D Array in C++ dient dazu, Daten übersichtlich in Tabellenform zu organisieren. In der Mathematik, speziell in der linearen Algebra, sind 2D Arrays die ideale Struktur, um Matrizen abzubilden.
Was genau ist ein 2D Array in C++?
Ein 2D Array in C++ ist eine Datenstruktur, mit der du Elemente in einer zweidimensionalen, rasterähnlichen Anordnung speicherst. Im Unterschied zu einfachen Arrays, die nur eine Datenreihe enthalten, strukturiert ein 2D Array Informationen in Zeilen und Spalten. Jedes Element ist dabei über seine exakte Position (Zeilen- und Spaltenindex) definiert. Dieser Aufbau macht es dir leicht, gezielt auf Datenpunkte zuzugreifen oder diese zu bearbeiten. Die Einsatzbereiche reichen von komplexen Matrix-Berechnungen bis hin zur Verwaltung von Rastergrafiken.
So ist ein 2D Array in C++ aufgebaut
Die Deklaration eines 2D Arrays in C++ folgt dieser Syntax:
data_type arrayName[num_rows][num_cols];c++data_type: Hier legst du fest, welcher Datentyp gespeichert wird – etwaintfür Ganzzahlen,doublefür Kommazahlen oder auch eigene Datentypen.arrayName: Das ist die Bezeichnung, mit der du das gesamte Array im Code ansprichst.num_rows: Diese Angabe bestimmt die Zeilenanzahl deines 2D Arrays.num_cols: Hiermit definierst 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 Bildschirm anzuzeigen, nutzt du am besten eine for-Schleife. Die äußere Schleife steuert die Zeilen an, während die innere Schleife die einzelnen Spalten durchlä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 Tabellenstruktur 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 12c++Praktische Beispiele für C++ Two-Dimensional Arrays
Wenn du C++ lernen möchtest, kommst du an Arrays nicht vorbei. Hier siehst du zwei typische Szenarien für die Verwendung von 2D Arrays.
Benutzereingaben im 2D Array verarbeiten
In diesem Beispiel definieren wir die Werte nicht vorab, sondern lassen sie direkt eingeben. Das Programm fragt erst nach der gewünschten 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 6c++Matrizen addieren mit 2D Arrays
Mithilfe von C-Operatoren wie + lassen sich mathematische Matrizen in C++ effizient zusammenführen.
#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 definieren 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 Rechenarbeit, während displayMatrix das Resultat übersichtlich in der Konsole ausgibt.
Das Ergebnis der Berechnung:
Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12c++