I C++ kan du använda tvådimensionella matriser för att organisera data på ett tabellliknande sätt. Inom matematiken, särskilt inom linjär algebra, erbjuder 2D-matriser en optimal struktur för att representera matriser.

Vad är en 2D-matris i C++?

I C++ är en 2D-matris en datastruktur som ordnar element i ett tvådimensionellt, tabellliknande format. Till skillnad från endimensionella matriser, som helt enkelt lagrar element i en sekvens, organiserar en 2D-matris data i rader och kolumner. Varje element i en 2D-matris identifieras av sina rad- och kolumnindex, vilket underlättar åtkomst och hantering av enskilda datapunkter. Från matematiska operationer med matriser till hantering av rasterdata finns det olika användningsområden för denna typ av matris.

Hur är en 2D-matris strukturerad i C++?

I C++ består syntaxen för att deklarera 2D-matriser av följande element:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Datatypen anger vilken typ av data som ska lagras i 2D-matrisen. Detta kan till exempel vara int för heltal, double för flyttal eller användardefinierade datatyper.
  • arrayName: Namnet fungerar som en identifierare som du kan använda för att komma åt hela matrisen.
  • num_rows: Denna del av syntaxen anger hur många rader 2D-matrisen ska ha.
  • num_cols: Här anger du antalet kolumner för varje rad i 2D-matrisen.

I exemplet nedan ska vi definiera en 2D-matris som heter matrix. Den består av 3 rader och 4 kolumner och har totalt 12 element.

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

Hur man skriver ut en 2D-matris i C++

Du kan skriva ut en 2D-matris med hjälp av en for-slinga. Den yttre slingan itererar över raderna, medan den inre slingan itererar över kolumnerna i varje rad. Uttrycket std::cout << matrix[i][j] << " "; visar varje element. Efter varje rad skapar vi en ny rad med hjälp av std::cout << std::endl;. Detta säkerställer ett bättre format för utdata.

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

Elementen i 2D-matrisen visas rad för rad i utdata:

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

Exempel på hur man använder tvådimensionella matriser i C++

Att programmera med C++ innebär att du förr eller senare kommer att arbeta med arrayer. I följande avsnitt visar vi typiska tillämpningar för 2D-arrayer i C++.

2D-matriser med användarinmatning

Här är ett enkelt C++-exempel där vi låter användaren definiera en 2D-matris dynamiskt. Först ber vi användaren att ange antalet rader och kolumner, följt av elementen för 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++

Om 2 rader och 3 kolumner och värdena 1, 2, 3, 4, 5, 6 skickas som användarinmatning blir 2D-matrisen:

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

Addera matriser med 2D-matriser

Med C-operatorer som + kan vi enkelt lägga till matriser i C++ med hjälp 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 skapar vi två 2x2, A och B. Sedan beräknar vi deras summa, som visas i den resulterande matrisen. Funktionen matrixAddition tar emot de två initiala matriserna och den resulterande matrisen som parametrar och utför additionen. Funktionen displayMatrix visar sedan summan av matriserna A och B på konsolen.

Här är resultatet:

Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12
c++
Gå till huvudmeny