In C++ kun je tweedimensionale arrays gebruiken om gegevens op een tabelachtige manier te ordenen. In de wiskunde, met name in de lineaire algebra, bieden 2D-arrays een optimale structuur voor het weergeven van matrices.

Wat is een 2D-array in C++?

In C++ is een 2D-array een gegevensstructuur die elementen rangschikt in een tweedimensionaal, tabelachtig formaat. In tegenstelling tot eendimensionale arrays, die elementen eenvoudigweg in een reeks opslaan, organiseert een 2D-array gegevens in rijen en kolommen. Elk element in een 2D-array wordt geïdentificeerd door zijn rij- en kolomindexen, waardoor individuele gegevenspunten gemakkelijk toegankelijk zijn en gemanipuleerd kunnen worden. Van wiskundige bewerkingen met matrices tot het verwerken van rastergegevens, er zijn verschillende toepassingen voor dit type array.

Hoe is een 2D-array gestructureerd in C++?

In C++ bestaat de syntaxis voor het declareren van 2D-arrays uit de volgende elementen:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Het gegevenstype specificeert het type gegevens dat in de 2D-array moet worden opgeslagen. Dit kan bijvoorbeeld int zijn voor gehele getallen, double voor drijvende-kommagetallen of door de gebruiker gedefinieerde gegevenstypen.
  • arrayName: De naam fungeert als een identificatiecode die u kunt gebruiken om toegang te krijgen tot de volledige array.
  • num_rows: Dit deel van de syntaxis geeft aan hoeveel rijen de 2D-array moet hebben.
  • num_cols: Hier specificeert u het aantal kolommen voor elke rij in de 2D-array.

In het onderstaande voorbeeld definiëren we een 2D-array met de naam matrix. Deze bestaat uit 3 rijen en 4 kolommen en heeft in totaal 12 elementen.

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

Hoe een 2D-array uitvoeren in C++

Je kunt een 2D-array uitvoeren met behulp van een for-lus. De buitenste lus doorloopt de rijen, terwijl de binnenste lus de kolommen van elke rij doorloopt. De instructie std::cout << matrix[i][j] << " "; geeft elk element weer. Na elke rij maken we een nieuwe rij aan met behulp van std::cout << std::endl;. Dit zorgt voor een betere indeling van de uitvoer.

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

De elementen van de 2D-array worden regel voor regel weergegeven in de uitvoer:

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

Voorbeelden van het gebruik van tweedimensionale arrays in C++

Als je programmeert met C++, zul je vroeg of laat met arrays gaan werken. In het volgende gedeelte laten we je typische toepassingen voor 2D-arrays in C++ zien.

2D-arrays met gebruikersinvoer

Hier is een eenvoudig C++-voorbeeld waarin we de gebruiker een 2D-array dynamisch laten definiëren. Eerst vragen we de gebruiker om het aantal rijen en kolommen in te voeren, gevolgd door de elementen voor de array.

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

Als 2 rijen en 3 kolommen en de waarden 1, 2, 3, 4, 5, 6 worden doorgegeven als gebruikersinvoer, dan is de 2D-array:

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

Matrices met 2D-arrays toevoegen

Met C-operatoren zoals + kunnen we eenvoudig matrices toevoegen in C++ met behulp van 2D-arrays.

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

Eerst maken we twee 2x2 matrices, A en B. Vervolgens berekenen we hun som, die in de resulterende matrix wordt weergegeven. De matrixAddition functie accepteert de twee initiële matrices en de resulterende matrix als parameters en voert de optelling uit. De displayMatrix functie geeft vervolgens de som van matrices A en B weer op de console.

Dit is de uitvoer:

Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12
c++
Ga naar hoofdmenu