C++ valodā var izmantot divdi­men­sio­nā­lus masīvus, lai or­ga­ni­zē­tu datus tabulas veidā. Ma­te­mā­ti­kā, īpaši lineārā algebrā, 2D masīvi nodrošina optimālu struktūru matricu at­tē­lo­ša­nai.

Kas ir 2D masīvs C++ valodā?

C++ valodā 2D masīvs ir datu struktūra, kas sakārto elementus divdi­men­sio­nā­lā, tabulas veida formātā. Atšķirībā no vien­kār­ša­jiem masīviem, kas vienkārši uzglabā elementus secībā, 2D masīvs organizē datus rindās un kolonnās. Katrs elements 2D masīvā tiek iden­ti­fi­cēts pēc tā rindas un kolonnas indeksiem, kas atvieglo piekļuvi at­se­viš­ķiem datu punktiem un to apstrādi. No ma­te­mā­tis­kām ope­rā­ci­jām ar matricām līdz rastra datu apstrādei — šāda veida masīviem ir dažādi lietojumi.

Kā ir struk­tu­rēts 2D masīvs C++ valodā?

C++ valodā 2D masīvu dek­la­rē­ša­nas sintakse sastāv no šādiem ele­men­tiem:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Datu tips nosaka datu tipu, kas jāuzglabā 2D masīvā. Tas var būt, piemēram, int veseliem skaitļiem, double peldošā punkta skaitļiem vai lietotāja de­fi­nē­tiem datu tipiem.
  • arrayName: Nosaukums darbojas kā iden­ti­fi­ka­tors, kuru var izmantot, lai piekļūtu visam masīvam.
  • num_rows: Šī sintakses daļa norāda, cik rindām jābūt 2D masīvā.
  • num_cols: Šeit norādāt kolonnu skaitu katrai rindai 2D masīvā.

Zemāk redzamajā piemērā mēs definēsim 2D masīvu ar nosaukumu matrix. Tas sastāv no 3 rindām un 4 kolonnām un kopumā satur 12 elementus.

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

Kā izvadīt 2D masīvu C++ valodā

Jūs varat izvadīt 2D masīvu, iz­man­to­jot for cilpu. Ārējā cilpa at­kār­to­jas pa rindām, bet iekšējā cilpa at­kār­to­jas pa katras rindas kolonnām. Teikums std::cout << matrix[i][j] << " "; parāda katru elementu. Pēc katras rindas mēs iz­vei­do­sim jaunu rindu, iz­man­to­jot std::cout << std::endl;. Tas nodrošina labāku izvades formātu.

#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 masīva elementi izvades failā tiek attēloti rindā pa rindai:

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

Piemēri, kā izmantot divdi­men­sio­nā­los masīvus C++ valodā

Prog­ram­mē­ša­na ar C++ nozīmē, ka agrāk vai vēlāk jums nāksies strādāt ar masīviem. Nākamajā sadaļā mēs parādīsim tipiskus 2D masīvu pie­lie­to­ju­mus C++.

2D masīvi ar lietotāja ievadi

Šeit ir vienkāršs C++ piemērs, kurā ļaujam lie­to­tā­jam dinamiski definēt 2D masīvu. Vispirms lūdzam lietotāju ievadīt rindu un kolonnu skaitu, pēc tam masīva 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++

Ja lietotājs ievada 2 rindas un 3 kolonnas un vērtības 1, 2, 3, 4, 5, 6, 2D masīvs būs šāds:

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

Matricu summēšana ar 2D masīviem

Iz­man­to­jot C ope­ra­to­rus, piemēram, +, mēs varam viegli pievienot matricu C++, iz­man­to­jot 2D masīvus.

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

Vispirms iz­vei­do­jam divas 2x2 matricas, A un B. Tad aprēķinām to summu, kas tiks parādīta rezultātā iegūtajā matricā. matrixAddition funkcija kā pa­ra­met­rus pieņem divas sā­kot­nē­jās matricas un rezultātā iegūto matricu un veic summēšanu. displayMatrix funkcija pēc tam konsolē parāda matricu A un B summu.

Šeit ir rezultāts:

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