I C++ kan du bruke todimensjonale matriser til å organisere data på en tabellignende måte. I matematikk, spesielt i lineær algebra, gir 2D-matriser en optimal struktur for å representere matriser.

Hva er en 2D-matrise i C++?

I C++ er en 2D-matrise en datastruktur som ordner elementer i et todimensjonalt, tabellignende format. I motsetning til endimensjonale matriser, som bare lagrer elementer i en sekvens, organiserer en 2D-matrise data i rader og kolonner. Hvert element i en 2D-matrise identifiseres ved hjelp av rad- og kolonneindekser, noe som gjør det enkelt å få tilgang til og manipulere individuelle datapunkter. Fra matematiske operasjoner som involverer matriser til håndtering av rasterdata, finnes det ulike bruksområder for denne typen matriser.

Hvordan er en 2D-matrise strukturert i C++?

I C++ består syntaksen for å deklarere 2D-matriser av følgende elementer:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Datatypen angir typen data som skal lagres i 2D-matrisen. Dette kan for eksempel være int for heltall, double for flytende tall eller brukerdefinerte datatyper.
  • arrayName: Navnet fungerer som en identifikator som du kan bruke for å få tilgang til hele matrisen.
  • num_rows: Denne delen av syntaksen angir hvor mange rader 2D-matrisen skal ha.
  • num_cols: Her angir du antall kolonner for hver rad i 2D-matrisen.

I eksemplet nedenfor skal vi definere en 2D-matrise kalt matrix. Den består av 3 rader og 4 kolonner og har totalt 12 elementer.

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

Hvordan skrive ut en 2D-matrise i C++

Du kan skrive ut en 2D-matrise ved hjelp av en for-løkke. Den ytre løkken gjentar seg over radene, mens den indre løkken gjentar seg over kolonnene i hver rad. Setningen std::cout << matrix[i][j] << " "; viser hvert element. Etter hver rad skal vi opprette en ny rad ved hjelp av std::cout << std::endl;. Dette sikrer et bedre format for utdataene.

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

Elementene i 2D-matrisen vises linje for linje i utdataene:

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

Eksempler på hvordan man bruker todimensjonale matriser i C++

Programmering med C++ betyr at du før eller senere vil jobbe med matriser. I neste avsnitt viser vi deg typiske bruksområder for 2D-matriser i C++.

2D-matriser med brukerinndata

Her er et enkelt C++-eksempel hvor vi lar brukeren definere en 2D-matrise dynamisk. Først ber vi brukeren om å angi antall rader og kolonner, etterfulgt av elementene for matrisen.

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

Hvis 2 rader og 3 kolonner og verdiene 1, 2, 3, 4, 5, 6 sendes som brukerinndata, vil 2D-matrisen være:

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

Legge til matriser med 2D-matriser

Med C-operatorer som + kan vi enkelt legge sammen matriser i C++ ved hjelp av 2D-matriser.

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

Først oppretter vi to 2x2 matriser, A og B. Deretter beregner vi summen av dem, som vises i den resulterende matrisen. Funksjonen matrixAddition aksepterer de to opprinnelige matrisene og den resulterende matrisen som parametere og utfører addisjonen. Funksjonen displayMatrix viser deretter summen av matrisene A og B på konsollen.

Her er resultatet:

Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12
c++
Go to Main Menu