multidimensional arrays c
Úloha multidimenzionálneho poľa v C ++ s príkladmi.
Doteraz sme v našich predchádzajúcich tutoriáloch videli všetko o jednorozmerných poliach.
C ++ podporuje aj polia s viac ako jednou dimenziou. Nazývajú sa viacrozmerné polia. Viacrozmerné polia sú zvyčajne usporiadané v tabuľkovej forme, tj. V poradí väčšej rady.
=> Celú sériu školení pre C ++ nájdete tu.
Čo sa dozviete:
Multidimenzionálne polia v C ++
Zvážte viacrozmerné pole s rozmermi 3 × 2, t. J. 3 riadky a 2 stĺpce.
Toto pole reprezentujeme nasledovne:
R1c1 | R2c2 |
R2c1 | R2c2 |
R3c1 | R3c2 |
Ako je znázornené na vyššie uvedenom obrázku, každá bunka Napr. R1C1 bude obsahovať obsah poľa.
Počet prvkov prítomných vo viacrozmernom poli je súčinom jeho rozmerov. To znamená, že ak sú rozmery poľa 3 × 2, potom počet prvkov v tomto poli je súčinom 3 a 2, tj 6. Podobne, ak sú rozmery viacrozmerného poľa (10) (20) (10) potom počet prvkov v tomto poli je 10 * 20 * 10 = 2000.
Dvojrozmerné pole je najjednoduchšia forma viacrozmerného poľa používaného v C ++.
Deklarácia poľa
Všeobecná deklarácia multidimenzionálneho poľa v C ++ je uvedená nižšie:
dataType arrayName (size1)(size2)….(sizen);
V tomto prípade je dataType údajový typ poľa. Datový typ by mal byť podporovaný v C ++.
arrayName je názov multidimenzionálneho poľa.
Veľkosť1, veľkosť2…. Veľkosť sú veľkosti každého z rozmerov poľa.
Napríklad,deklarujme pole s veľkosťou 3 × 2, t. j. dvojrozmerné pole, myarray_2d.
int myarray_2d (3)(2);
Dvojrozmerné pole je znázornené vo forme riadkov a stĺpcov.
Takže vyššie uvedená deklarácia poľa môže byť znázornená takto:
myarray_2d (0) (0) | myarray_2d (0) (1) |
myarray_2d (1) (0) | myarray_2d (1) (1) |
myarray_2d (2) (0) | myarray_2d (2) (1) |
Ako je znázornené na vyššie uvedenom obrázku, ku každému prvku dvojrozmerného poľa sa pristupuje ako k myarray_2d (i) (j), kde i je číslo riadku a pohybuje sa od 0 do n-1, kde n je veľkosť dimenzie a j je veľkosť číslo stĺpca a pohybuje sa od 0 do m-1, kde m je veľkosť dimenzie stĺpca.
Inicializácia viacrozmerných polí
Môžeme inicializovať viacrozmerné polia podobné jednorozmerným poliam. Multidimenzionálne polia sú inicializované po riadkoch.
Existujú dva spôsoby, ako môžeme inicializovať viacrozmerné polia.
# 1) Zvážte pole s rozmermi (3) (2) s názvom myarray:
int myarray(3)(2) = {1, 2,3,4,5,6};
Tu je inicializácia poľa zľava doprava spôsobom po riadkoch. Pretože rozmery sú (3) (2), prvé dva prvky vytvoria prvý riadok atď.
Obrázkové znázornenie tejto inicializácie bude vyzerať takto:
1 | dva |
3 | 4 |
5 | 6 |
# 2) Rovnaké pole zobrazené vyššie je možné inicializovať iným spôsobom, ako je uvedené nižšie:
int myarray(3)(2) = { {1,2}, {3,4}, {5,6} };
Tu sa inicializácia vykonáva zľava doprava a každý prvok zodpovedá jednému riadku. Pretože pre toto pole existujú tri riadky, máme tri vnútorné prvky uzavreté v zložených zátvorkách ({}).
Tento spôsob inicializácie je čitateľnejší a je výhodný, keď rastú rozmery poľa.
Prístup k viacrozmerným poliam
K viacrozmerným prvkom poľa sa pristupuje pomocou indexu riadkov a indexov stĺpcov.
Pozrime sa príklad dvojrozmerného poľa s rozmermi (3) (3). Nižšie je uvedený kód na jeho inicializáciu.
int newarray (3)(3) = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
Ak chcem získať prístup k druhému prvku v prvom riadku a priradiť ho k celočíselnej premennej, potom bude riadok kódu:
int val_2d = newarray(0)(1);
Ďalej je uvedený ukážkový program, ktorý zobrazuje deklaráciu, inicializáciu a prístup k dvojrozmernému poľu.
#include using namespace std; int main() { int myarray(3)(3) = {{1,2,3},{4,5,6},{7,8,9}}; for(int i=0;i <3;i++) { for(int j=0;j<3;j++) { cout< Tento program produkuje nasledujúci výstup:
1 2 3 4 5 6 7 8 9
Ako je uvedené v predchádzajúcom programe, dvojrozmerné pole je deklarované a potom inicializované. Potom pre prístup a tlač všetkých prvkov poľa sme nastavili dva cykly. Vonkajšia slučka for je na prístup k prvkom po riadkoch. Vnútorná slučka for slúži ako počítadlo na prístup k prvkom v každom stĺpci.
algoritmus triedenia haldy c ++
Týmto spôsobom pristupujeme ku každému prvku tohto dvojrozmerného poľa a zobrazujeme ho na obrazovke.
Záver
Viacrozmerné polia môžu mať ľubovoľný počet rozmerov a so zvyšujúcim sa počtom dimenzií sa podľa toho zvyšuje aj zložitosť.
Aj keď sme vo všetkých vyššie uvedených príkladoch použili dvojrozmerné polia, môžeme pole s vyššími rozmermi kódovať podobným spôsobom.
=> Kliknutím sem získate bezplatný kurz C ++.
Odporúčané čítanie
- Polia v STL
- Používanie polí s funkciami v C ++
- Polia C ++ s príkladmi
- Polia VBScript: Používanie funkcií polí DIM, REDIM, Split a Ubound Array
- Vložte viac dokumentov do MongoDB pomocou polí
- Najlepšia výučbová séria C # ZDARMA: Sprievodca C # pre začiatočníkov
- Java dátové typy, slučky, polia, prepínače a tvrdenia
- Pokročilé skriptovanie Unix Shell: polia, operátory testovania súborov a reťazcov, špeciálne premenné