C ++ mitmemõõtmelised massiivid (2. ja 3. massiivid)

Selles õpetuses õpime mitmemõõtmelisi massiive C ++ keeles. Täpsemalt, kuidas neid deklareerida, neile juurde pääseda ja neid meie programmis tõhusalt kasutada.

C ++ -s saame luua massiivi massiivi, mida tuntakse mitmemõõtmelise massiivina. Näiteks:

 int x(3)(4);

Siin on x kahemõõtmeline massiiv. See mahutab maksimaalselt 12 elementi.

Me võime seda massiivi mõelda kui 3 rida tabelit ja igal real on 4 veergu, nagu allpool näidatud.

C ++ programmeerimise kahemõõtmelise massiivi elemendid

Ka kolmemõõtmelised massiivid töötavad sarnaselt. Näiteks:

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

See massiiv x mahutab maksimaalselt 24 elementi.

Massiivi elementide koguarvu saame teada, korrutades selle mõõtmed:

 2 x 4 x 3 = 24

Mitmemõõtmeline massiivi initsialiseerimine

Nagu tavaline massiiv, saame ka mitmemõõtmelise massiivi initsialiseerida mitmel viisil.

1. Kahemõõtmelise massiivi initsialiseerimine

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

Ülaltoodud meetodit ei eelistata. Parem viis selle massiivi initsialiseerimiseks samade massiivi elementidega on toodud allpool:

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

Sellel massiivil on 2 rida ja 3 veergu, mistõttu on meil kaks rida elemente, millest igaühel on 3 elementi.

Kahemõõtmelise massiivi initsialiseerimine C ++ keeles

2. Kolmemõõtmelise massiivi initsialiseerimine

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

See pole hea viis kolmemõõtmelise massiivi initsialiseerimiseks. Parem viis selle massiivi initsialiseerimiseks on:

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

Pange tähele selle kolmemõõtmelise massiivi mõõtmeid.

Esimesel mõõtmel on väärtus 2. Niisiis, kaks elementi, mis moodustavad esimese dimensiooni, on:

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

Teisel mõõtmel on väärtus 3. Pange tähele, et esimese dimensiooni kõigil elementidel on kolm elementi:

 (3, 4, 2, 3), (0, -3, 9, 11) ja (23, 12, 23, 2) 1. elemendi jaoks. (13, 4, 56, 3), (5, 9, 3 , 5) ja (5, 1, 4, 9) elemendi 2 jaoks.

Lõpuks on intteise dimensiooni igas elemendis neli numbrit:

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

Näide 1: kahemõõtmeline massiiv

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

Väljund

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

Ülaltoodud näites oleme intalgatanud kahemõõtmelise massiivi nimega test, millel on 3 "rida" ja 2 "veergu".

Siin oleme formassiivi elementide kuvamiseks kasutanud pesastatud silmust.

  • välimine silmus, i == 0et i == 2pääseda massiivi ridadele
  • sisemine loop alates j == 0kuni j == 1ligipääsu veerud massiivi

Lõpuks printime massiivi elemendid igasse iteratsiooni.

Näide 2: Sisendi võtmine kahemõõtmelise massiivi jaoks

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

Väljund

 Sisestage 6 numbrit: 1 2 3 4 5 6 Numbrid on järgmised: numbrid (0) (0): 1 numbrid (0) (1): 2 numbrit (0) (2): 3 numbrit (1) (0): 4 numbrid (1) (1): 5 numbrit (1) (2): 6

Siin oleme for2d massiivi sisendi kasutamiseks võtnud pesastatud silmuse. Kui kogu sisend on sisestatud, oleme formassiivi liikmete printimiseks kasutanud veel ühte pesastatud silmust.

Näide 3: kolmemõõtmeline massiiv

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

Väljund

 test (0) (0) (0) = 1 test (0) (0) (1) = 2 test (0) (1) (0) = 3 test (0) (1) (1) = 4 testi ( 0) (2) (0) = 5 testi (0) (2) (1) = 6 testi (1) (0) (0) = 7 testi (1) (0) (1) = 8 testi (1) (1) (0) = 9 test (1) (1) (1) = 10 test (1) (2) (0) = 11 test (1) (2) (1) = 12

3D-massiivi elementide printimise põhimõte on sarnane 2d-massiivi omaga.

Kuid kuna me manipuleerime kolme dimensiooniga, kasutame sisestatud silmuse jaoks ainult 3 silmust kokku:

  • välimise kontuuri alates i == 0kuni i == 1juurdepääsud esimese mõõde massiivi
  • keskelt kliendiliine j == 0et j == 2pöördub teise dimensiooni massiivi
  • sisima kliendiliine k == 0et k == 1pöördub kolmas mõõde massiivi

Nagu näeme, suureneb massiivi keerukus mõõtmete suurenemisega eksponentsiaalselt.

Huvitavad Artiklid...