In C++ kun je twee­di­men­si­o­na­le arrays gebruiken om gegevens op een ta­bel­ach­ti­ge 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 ge­ge­vens­struc­tuur die elementen rang­schikt in een twee­di­men­si­o­naal, ta­bel­ach­tig formaat. In te­gen­stel­ling tot een­di­men­si­o­na­le arrays, die elementen een­vou­dig­weg in een reeks opslaan, or­ga­ni­seert een 2D-array gegevens in rijen en kolommen. Elk element in een 2D-array wordt ge­ï­den­ti­fi­ceerd door zijn rij- en ko­lo­min­dexen, waardoor in­di­vi­du­e­le ge­ge­vens­pun­ten ge­mak­ke­lijk toe­gan­ke­lijk zijn en ge­ma­ni­pu­leerd kunnen worden. Van wis­kun­di­ge be­wer­kin­gen met matrices tot het verwerken van ras­ter­ge­ge­vens, er zijn ver­schil­len­de toe­pas­sin­gen voor dit type array.

Hoe is een 2D-array ge­struc­tu­reerd in C++?

In C++ bestaat de syntaxis voor het de­cla­re­ren van 2D-arrays uit de volgende elementen:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Het ge­ge­vens­ty­pe spe­ci­fi­ceert het type gegevens dat in de 2D-array moet worden op­ge­sla­gen. Dit kan bij­voor­beeld int zijn voor gehele getallen, double voor drijvende-kom­ma­ge­tal­len of door de gebruiker ge­de­fi­ni­eer­de ge­ge­vens­ty­pen.
  • arrayName: De naam fungeert als een iden­ti­fi­ca­tie­co­de 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 spe­ci­fi­ceert u het aantal kolommen voor elke rij in de 2D-array.

In het on­der­staan­de voorbeeld de­fi­ni­ë­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 in­struc­tie 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 weer­ge­ge­ven in de uitvoer:

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

Voor­beel­den van het gebruik van twee­di­men­si­o­na­le arrays in C++

Als je pro­gram­meert met C++, zul je vroeg of laat met arrays gaan werken. In het volgende gedeelte laten we je typische toe­pas­sin­gen voor 2D-arrays in C++ zien.

2D-arrays met ge­brui­kers­in­voer

Hier is een eenvoudig C++-voorbeeld waarin we de gebruiker een 2D-array dynamisch laten de­fi­ni­ë­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 door­ge­ge­ven als ge­brui­kers­in­voer, dan is de 2D-array:

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

Matrices met 2D-arrays toevoegen

Met C-ope­ra­to­ren 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. Ver­vol­gens berekenen we hun som, die in de re­sul­te­ren­de matrix wordt weer­ge­ge­ven. De matrixAddition functie ac­cep­teert de twee initiële matrices en de re­sul­te­ren­de matrix als pa­ra­me­ters en voert de optelling uit. De displayMatrix functie geeft ver­vol­gens 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