Ako vytvoriť a používať 2D pole v C++
V jazyku C++ môžete použiť dvojrozmerné polia na usporiadanie údajov do tabuľky. V matematike, najmä v lineárnej algebre, poskytujú 2D polia optimálnu štruktúru na reprezentáciu matíc.
Čo je to 2D pole v C++?
V jazyku C++ je 2D pole dátová štruktúra, ktorá usporadúva prvky v dvojrozmernom formáte podobnom tabuľke. Na rozdiel od jednorozmerných polí, ktoré jednoducho ukladajú prvky v sekvencii, 2D pole organizuje dáta do riadkov a stĺpcov. Každý prvok v 2D poli je identifikovaný indexom riadku a stĺpca, čo uľahčuje prístup a manipuláciu s jednotlivými dátovými bodmi. Od matematických operácií s maticami až po spracovanie rastrových dát existuje mnoho rôznych použití pre tento typ poľa.
Ako je štruktúrované 2D pole v C++?
V jazyku C++ sa syntax pre deklarovanie 2D polí skladá z nasledujúcich prvkov:
data_type arrayName[num_rows][num_cols];c++data_type: Typ údajov určuje typ údajov, ktoré by mali byť uložené v 2D poli. Môže to byť napríkladintpre celé čísla,doublepre čísla s pohyblivou desatinnou čiarkou alebo užívateľsky definované typy údajov.arrayName: Názov slúži ako identifikátor, ktorý môžete použiť na prístup k celému poľu.num_rows: Táto časť syntaxe určuje, koľko riadkov by malo mať 2D pole.num_cols: Tu špecifikujete počet stĺpcov pre každý riadok v 2D poli.
V nasledujúcom príklade definujeme 2D pole s názvom matrix. Skladá sa z 3 riadkov a 4 stĺpcov a má celkom 12 prvkov.
int matrix[3][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};c++Ako vygenerovať 2D pole v C++
2D pole môžete vygenerovať pomocou cyklu for. Vonkajší cyklus iteruje nad riadkami, zatiaľ čo vnútorný cyklus iteruje nad stĺpcami každého riadku. Inštrukcia std::cout << matrix[i][j] << " "; zobrazuje každý prvok. Po každom riadku vytvoríme nový riadok pomocou std::cout << std::endl;. Tým zabezpečíme lepší formát výstupu.
#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++Prvky 2D poľa sa vo výstupe zobrazujú po riadkoch:
1 2 3 4
5 6 7 8
9 10 11 12c++Príklady použitia dvojrozmerných polí v jazyku C++
Programovanie v jazyku C++ znamená, že skôr či neskôr budete pracovať s polami. V nasledujúcej časti vám ukážeme typické použitie 2D polí v jazyku C++.
2D polia s užívateľským vstupom
Tu je jednoduchý príklad v jazyku C++, kde necháme používateľa dynamicky definovať 2D pole. Najskôr požiadame používateľa, aby zadal počet riadkov a stĺpcov, a potom prvky poľa.
#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++Ak sa ako užívateľský vstup zadá 2 riadkov a 3 stĺpcov a hodnoty 1, 2, 3, 4, 5, 6, 2D pole bude:
2D array:
1 2 3
4 5 6c++Sčítanie matíc s 2D polami
S operátormi C, ako je +, môžeme v C++ ľahko sčítať matice pomocou 2D polí.
#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++Najskôr vytvoríme dve matice 2x2, A a B. Potom vypočítame ich súčet, ktorý sa zobrazí v výslednej matici. Funkcia matrixAddition prijíma ako parametre dve počiatočné matice a výslednú maticu a vykoná sčítanie. Funkcia displayMatrix potom zobrazí súčet matíc A a B na konzole.
Tu je výstup:
Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12c++