C ++ višedimenzionalni nizovi (2. i 3d nizovi)

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.

Elementi u dvodimenzionalnom nizu u programiranju na C ++

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.

Inicijalizacija dvodimenzionalnog niza u C ++

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, intunutar 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 intniz nazvan test koji ima 3 "retka" i 2 "stupca".

Ovdje smo upotrijebili ugniježđenu forpetlju za prikaz elemenata niza.

  • vanjska petlja od i == 0za i == 2pristup redovima niza
  • unutarnja petlja od j == 0za j == 1pristup 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 forpetlju za unos 2d niza. Nakon što se sav unos uzme, upotrijebili smo drugu ugniježđenu forpetlju 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 == 0do i == 1pristupa prvoj dimenziji niza
  • srednja petlja od j == 0do j == 2pristupa drugoj dimenziji niza
  • najunutarnja petlja od k == 0do k == 1pristupa trećoj dimenziji niza

Kao što vidimo, složenost niza eksponencijalno raste s povećanjem dimenzija.

Zanimljivi članci...