Kako ustvariti in uporabljati 2D matriko v C++
V C++ lahko uporabite dvodimenzionalne matrike za organizacijo podatkov v obliki tabele. V matematiki, zlasti v linearni algebri, 2D matrike zagotavljajo optimalno strukturo za predstavitev matrik.
Kaj je 2D matrika v C++?
V C++ je 2D-matrika podatkovna struktura, ki elemente razporedi v dvodimenzionalni, tabelarični format. Za razliko od enodimenzionalnih matrik, ki elemente preprosto shranjujejo v zaporedju, 2D-matrika podatke organizira v vrstice in stolpce. Vsak element v 2D-matriki je identificiran s svojim indeksom vrstice in stolpca, kar olajša dostop do posameznih podatkovnih točk in njihovo manipulacijo. Od matematičnih operacij z matrikami do obdelave rastrskih podatkov obstajajo različne uporabe za to vrsto matrike.
Kako je strukturiran 2D niz v C++?
V C++ je sintaksa za deklaracijo 2D-nizov sestavljena iz naslednjih elementov:
data_type arrayName[num_rows][num_cols];c++data_type: Tip podatkov določa tip podatkov, ki naj bi bili shranjeni v 2D-matrici. To je lahko na primerintza cela števila,doubleza števila s plavajočo vejico ali uporabniško definirani tipi podatkov.arrayName: Ime deluje kot identifikator, ki ga lahko uporabite za dostop do celotnega niza.num_rows: Ta del sintakse določa, koliko vrstic naj ima 2D-niz.num_cols: Tukaj določite število stolpcev za vsako vrstico v 2D nizu.
V spodnjem primeru bomo definirali 2D matriko z imenom matrix. Sestoji iz 3 vrstic in 4 stolpcev ter ima skupaj 12 elementov.
int matrix[3][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};c++Kako izpisati 2D matriko v C++
2D matriko lahko izpišete z uporabo zanke for. Zunanja zanka ponavlja vrstice, notranja zanka pa stolpce vsake vrstice. Izjava std::cout << matrix[i][j] << " "; prikaže vsak element. Po vsaki vrstici bomo ustvarili novo vrstico z uporabo std::cout << std::endl;. To zagotavlja boljšo obliko izpisa.
#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++Elementi 2D matrike so v izhodu prikazani po vrsticah:
1 2 3 4
5 6 7 8
9 10 11 12c++Primeri uporabe dvodimenzionalnih matrik v C++
Programiranje v jeziku C++ pomeni, da boste prej ali slej delali z nizi. V naslednjem poglavju vam bomo pokazali tipične uporabe 2D nizov v jeziku C++.
2D matrike z uporabniškim vnosom
Tukaj je preprost primer v C++, kjer uporabniku omogočimo dinamično definiranje 2D matrike. Najprej uporabnika prosimo, naj vnese število vrstic in stolpcev, nato pa elemente matrike.
#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++Če se kot uporabniški vnos prenesejo 2 vrstic in 3 stolpcev ter vrednosti 1, 2, 3, 4, 5, 6, bo 2D matrika naslednja:
2D array:
1 2 3
4 5 6c++Seštevanje matrik z 2D-matrikami
Z operaterji C, kot je +, lahko v C++ enostavno dodajamo matrike z uporabo 2D-nizov.
#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++Najprej ustvarimo dve 2x2 matrici, A in B. Nato izračunamo njihovo vsoto, ki bo prikazana v končni matrici. Funkcija matrixAddition sprejme dve začetni matrici in končno matrico kot parametre in izvede seštevanje. Funkcija displayMatrix nato prikaže vsoto matric A in B na konzoli.
Tukaj je izhod:
Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12c++