C++ kalboje galite naudoti dvimatės matricos, kad duomenis or­ga­ni­zuo­tu­mė­te lentelės forma. Ma­te­ma­ti­ko­je, ypač li­ni­ji­nė­je algebrą, 2D matricos suteikia optimalų struktūrą matricų at­vaiz­da­vi­mui.

Kas yra 2D masyvas C++ kalboje?

C++ kalboje 2D masyvas yra duomenų struktūra, kuri elementus išdėsto dvimatėje, lentelės formos struk­tū­ro­je. Skir­tin­gai nuo vienmatės masyvų, kurie elementus saugo pa­pras­čiau­siai eilės tvarka, 2D masyvas duomenis išdėsto eilutėmis ir stul­pe­liais. Kiek­vie­nas 2D masyvo elementas iden­ti­fi­kuo­ja­mas pagal jo eilutės ir stulpelio indeksus, todėl lengva pasiekti ir ma­ni­pu­liuo­ti atskirais duomenų taškais. Nuo ma­te­ma­ti­nės ope­ra­ci­jos su mat­ri­co­mis iki rastro duomenų tvarkymo, šios rūšies masyvai turi įvairių pa­nau­do­ji­mo būdų.

Kaip C++ kalboje struk­tū­ri­zuo­ja­mas 2D masyvas?

C++ kalboje 2D masyvų dekla­ra­vi­mo sintaksė susideda iš šių elementų:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Duomenų tipas nurodo duomenų tipą, kuris turi būti saugomas 2D masyve. Tai gali būti, pa­vyz­džiui, int svei­kie­siems skaičiams, double slan­kie­siems skaičiams arba vartotojo api­brėž­tiems duomenų tipams.
  • arrayName: Pa­va­di­ni­mas veikia kaip iden­ti­fi­ka­to­rius, kurį galite naudoti norėdami pasiekti visą masyvą.
  • num_rows: Ši sintaksės dalis nurodo, kiek eilučių turėtų būti 2D masyve.
  • num_cols: Čia nurodote kiek­vie­nos 2D masyvo eilutės stulpelių skaičių.

Toliau pa­teik­ta­me pavyzdyje api­brė­ši­me 2D masyvą, pavadintą matrix. Jis susideda iš 3 eilučių ir 4 stulpelių ir turi iš viso 12 elementų.

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

Kaip išvesti 2D masyvą C++ kalba

2D masyvą galite išvesti naudodami for ciklą. Išorinis ciklas kartojasi per eilutes, o vidinis ciklas kartojasi per kiek­vie­nos eilutės stul­pe­lius. Teiginys std::cout << matrix[i][j] << " "; rodo kiekvieną elementą. Po kiek­vie­nos eilutės, naudodami std::cout << std::endl;, sukursime naują eilutę. Tai užtikrina geresnį išvesties formatą.

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

2D masyvo elementai išvedami eilutėmis išvestyje:

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

Pa­vyz­džiai, kaip naudoti dvimatės matricos C++ kalboje

Prog­ra­ma­vi­mas C++ kalba reiškia, kad anksčiau ar vėliau dirbsite su masyvais. Toliau pa­teik­si­me tipiškus 2D masyvų taikymo pa­vyz­džius C++ kalba.

2D masyvai su vartotojo įvestimi

Štai paprastas C++ pavyzdys, kuriame leidžiame var­to­to­jui di­na­miš­kai apibrėžti 2D masyvą. Pir­miau­sia paprašome vartotojo įvesti eilučių ir stulpelių skaičių, po to – masyvo elementus.

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

Jei var­to­to­jas įveda 2 eilučių ir 3 stulpelių bei reikšmes 1, 2, 3, 4, 5, 6, 2D masyvas bus toks:

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

Matricų su 2D masyvais sudėties

Naudodami C ope­ra­to­rius, pvz., +, galime lengvai sudėti matricą C++ kalba, naudodami 2D masyvus.

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

Pir­miau­sia sukuriame dvi 2x2 matricas, A ir B. Tada ap­skai­čiuo­ja­me jų sumą, kuri bus rodoma ga­lu­ti­nė­je matricoje. matrixAddition funkcija priima dvi pradines matricas ir galutinę matricą kaip pa­ra­met­rus ir atlieka sudėties veiksmą. displayMatrix funkcija tada konsolėje rodo matricų A ir B sumą.

Štai re­zul­ta­tas:

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