U ovom uputstvu naučit ćemo o višedimenzionalnim nizovima u C ++. Točnije, kako ih prijaviti, pristupiti im i učinkovito ih koristiti u našem programu.
U C ++-u možemo stvoriti niz polja, poznat kao višedimenzionalni niz. Na primjer:
int x(3)(4);
Ovdje je x dvodimenzionalni niz. Može sadržavati najviše 12 elemenata.
O ovom polju možemo razmišljati kao o tablici s 3 retka, a svaki redak ima 4 stupca kao što je prikazano u nastavku.

Trodimenzionalni nizovi također rade na sličan način. Na primjer:
float x(2)(4)(3);
Ovaj niz x može sadržavati najviše 24 elementa.
Ukupan broj elemenata u nizu možemo saznati množenjem njegovih dimenzija:
2 x 4 x 3 = 24
Inicijalizacija višedimenzionalnog niza
Poput normalnog niza, mi možemo inicijalizirati višedimenzionalni niz na više načina.
1. Inicijalizacija dvodimenzionalnog niza
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Gornja metoda nije poželjna. U nastavku je dan bolji način inicijalizacije ovog polja s istim elementima niza:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Ovaj niz ima 2 retka i 3 stupca, zbog čega imamo dva reda elemenata s po 3 elementa.

2. Inicijalizacija trodimenzionalnog niza
int test(2)(3)(4) = (3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9);
Ovo nije dobar način inicijalizacije trodimenzionalnog niza. Bolji način inicijalizacije ovog polja je:
int test(2)(3)(4) = ( ( (3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2) ), ( (13, 4, 56, 3), (5, 9, 3, 5), (5, 1, 4, 9) ) );
Primijetite dimenzije ovog trodimenzionalnog niza.
Prva dimenzija ima vrijednost 2
. Dakle, dva elementa koja čine prvu dimenziju su:
Element 1 = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) Element 2 = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9))
Druga dimenzija ima vrijednost 3
. Primijetite da svaki od elemenata prve dimenzije ima po tri elementa:
(3, 4, 2, 3), (0, -3, 9, 11) i (23, 12, 23, 2) za element 1. (13, 4, 56, 3), (5, 9, 3 , 5) i (5, 1, 4, 9) za element 2.
Napokon, int
unutar svakog elementa druge dimenzije nalaze se četiri broja:
(3, 4, 2, 3) (0, -3, 9, 11)……
Primjer 1: Dvodimenzionalni niz
// C++ Program to display all elements // of an initialised two dimensional array #include using namespace std; int main() ( int test(3)(2) = ((2, -5), (4, 0), (9, 1)); // use of nested for loop // access rows of the array for (int i = 0; i < 3; ++i) ( // access columns of the array for (int j = 0; j < 2; ++j) ( cout << "test(" << i << ")(" << j << ") = " << test(i)(j) << endl; ) ) return 0; )
Izlaz
test (0) (0) = 2 test (0) (1) = -5 test (1) (0) = 4 test (1) (1) = 0 test (2) (0) = 9 test (2) (1) = 1
U gornjem primjeru inicijalizirali smo dvodimenzionalni int
niz nazvan test koji ima 3 "retka" i 2 "stupca".
Ovdje smo upotrijebili ugniježđenu for
petlju za prikaz elemenata niza.
- vanjska petlja od
i == 0
zai == 2
pristup redovima niza - unutarnja petlja od
j == 0
zaj == 1
pristup stupcima niza
Konačno, ispisujemo elemente niza u svakoj iteraciji.
Primjer 2: Unos za dvodimenzionalni niz
#include using namespace std; int main() ( int numbers(2)(3); cout << "Enter 6 numbers: " << endl; // Storing user input in the array for (int i = 0; i < 2; ++i) ( for (int j = 0; j > numbers(i)(j); ) ) cout << "The numbers are: " << endl; // Printing array elements for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 3; ++j) ( cout << "numbers(" << i << ")(" << j << "): " << numbers(i)(j) << endl; ) ) return 0; )
Izlaz
Unesite 6 brojeva: 1 2 3 4 5 6 Brojevi su: brojevi (0) (0): 1 brojevi (0) (1): 2 broja (0) (2): 3 broja (1) (0): 4 brojevi (1) (1): 5 brojevi (1) (2): 6
Ovdje smo upotrijebili ugniježđenu for
petlju za unos 2d niza. Nakon što se sav unos uzme, upotrijebili smo drugu ugniježđenu for
petlju za ispis članova niza.
Primjer 3: Trodimenzionalni niz
// C++ Program to Store value entered by user in // three dimensional array and display it. #include using namespace std; int main() ( // This array can store upto 12 elements (2x3x2) int test(2)(3)(2) = ( ( (1, 2), (3, 4), (5, 6) ), ( (7, 8), (9, 10), (11, 12) ) ); // Displaying the values with proper index. for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 3; ++j) ( for (int k = 0; k < 2; ++k) ( cout << "test(" << i << ")(" << j << ")(" << k << ") = " << test(i)(j)(k) << endl; ) ) ) return 0; )
Izlaz
test (0) (0) (0) = 1 test (0) (0) (1) = 2 test (0) (1) (0) = 3 test (0) (1) (1) = 4 test ( 0) (2) (0) = 5 test (0) (2) (1) = 6 test (1) (0) (0) = 7 test (1) (0) (1) = 8 test (1) (1) (0) = 9 test (1) (1) (1) = 10 test (1) (2) (0) = 11 test (1) (2) (1) = 12
Osnovni koncept ispisa elemenata 3d niza sličan je konceptu 2d niza.
Međutim, budući da manipuliramo s 3 dimenzije, koristimo ugniježđenu petlju for s ukupno 3 petlje umjesto samo 2:
- vanjska petlja od
i == 0
doi == 1
pristupa prvoj dimenziji niza - srednja petlja od
j == 0
doj == 2
pristupa drugoj dimenziji niza - najunutarnja petlja od
k == 0
dok == 1
pristupa trećoj dimenziji niza
Kao što vidimo, složenost niza eksponencijalno raste s povećanjem dimenzija.