Večdimenzionalni nizi C ++ (drugi in 3d nizi)

V tej vadnici bomo izvedeli večdimenzionalne nize v jeziku C ++. Natančneje, kako jih prijaviti, dostopati do njih in jih učinkovito uporabiti v našem programu.

V jeziku C ++ lahko ustvarimo matriko matrike, znano kot večdimenzionalna matrika. Na primer:

 int x(3)(4);

Tu je x dvodimenzionalno polje. Vsebuje lahko največ 12 elementov.

To polje lahko predstavljamo kot tabelo s 3 vrsticami, vsaka vrstica pa ima 4 stolpce, kot je prikazano spodaj.

Elementi v dvodimenzionalnem polju v programiranju C ++

Na podoben način delujejo tudi tridimenzionalni nizi. Na primer:

 float x(2)(4)(3);

Ta matrika x lahko vsebuje največ 24 elementov.

Skupno število elementov v matriki lahko ugotovimo tako, da pomnožimo njene dimenzije:

 2 x 4 x 3 = 24

Inicializacija večdimenzionalnega polja

Tako kot običajno polje lahko tudi večdimenzionalno polje inicializiramo na več načinov.

1. Inicializacija dvodimenzionalnega polja

 int test(2)(3) = (2, 4, 5, 9, 0, 19);

Zgornja metoda ni zaželena. Spodaj je podan boljši način za inicializacijo tega polja z enakimi elementi matrike:

 int test(2)(3) = ( (2, 4, 5), (9, 0, 19));

Ta matrika ima 2 vrstici in 3 stolpce, zato imamo dve vrstici elementov s po 3 elementi.

Inicializacija dvodimenzionalnega polja v jeziku C ++

2. Inicializacija tridimenzionalnega polja

 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);

To ni dober način za inicializacijo tridimenzionalnega polja. Boljši način za inicializacijo te matrike 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) ) );

Upoštevajte dimenzije tega tridimenzionalnega polja.

Prva dimenzija ima vrednost 2. Dva elementa, ki sestavljata prvo dimenzijo, sta torej:

 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 vrednost 3. Upoštevajte, da ima vsak element prve dimenzije po tri elemente:

 (3, 4, 2, 3), (0, -3, 9, 11) in (23, 12, 23, 2) za element 1. (13, 4, 56, 3), (5, 9, 3 , 5) in (5, 1, 4, 9) za element 2.

Na koncu so intznotraj vsakega elementa druge dimenzije štiri številke:

 (3, 4, 2, 3) (0, -3, 9, 11)…… 

Primer 1: Dvodimenzionalna matrika

 // 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; )

Izhod

 test (0) (0) = 2 test (0) (1) = -5 test (1) (0) = 4 test (1) (1) = 0 test (2) (0) = 9 test (2) (1) = 1

V zgornjem primeru smo inicializirali dvodimenzionalno intmatriko z imenom test, ki ima 3 "vrstice" in 2 "stolpca".

Tu smo ugnezdene forzanke uporabili za prikaz elementov matrike.

  • zunanja zanka od i == 0za i == 2dostop do vrstic polja
  • notranja zanka od j == 0za j == 1dostop do stolpcev polja

Na koncu v vsako ponovitev natisnemo elemente polja.

Primer 2: Vnos za dvodimenzionalno matriko

 #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; )

Izhod

 Vnesite 6 številk: 1 2 3 4 5 6 Številke so: številke (0) (0): 1 številke (0) (1): 2 številki (0) (2): 3 številke (1) (0): 4 številke (1) (1): 5 številk (1) (2): 6

Tu smo forza vnos 2d matrike uporabili ugnezdeno zanko. Ko smo vnesli vse vnose, smo forza tiskanje članov polja uporabili še eno ugnezdeno zanko.

Primer 3: Tridimenzionalna matrika

 // 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; )

Izhod

 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 tiskanja elementov 3d polja je podoben konceptu 2d polja.

Ker pa manipuliramo s tremi dimenzijami, namesto samo 2 uporabljamo ugnezdeno zanko for s 3 skupnimi zankami:

  • zunanja zanka od i == 0do i == 1dostopa do prve dimenzije polja
  • srednja zanka od j == 0do j == 2dostopa do druge dimenzije polja
  • najbolj notranja zanka od k == 0do k == 1dostopa do tretje dimenzije polja

Kot lahko vidimo, se kompleksnost matrike eksponentno povečuje s povečanjem dimenzij.

Zanimive Članki...