C ++ moniulotteiset taulukot (2. ja 3. taulukko)

Tässä opetusohjelmassa opitaan moniulotteisista ryhmistä C ++: ssa. Tarkemmin sanottuna, kuinka ilmoittaa ne, käyttää niitä ja käyttää niitä tehokkaasti ohjelmassa.

C ++: ssa voimme luoda taulukon matriisin, joka tunnetaan nimellä moniulotteinen taulukko. Esimerkiksi:

 int x(3)(4);

Tässä x on kaksiulotteinen taulukko. Siihen mahtuu enintään 12 elementtiä.

Voimme ajatella tätä taulukkoa taulukoksi, jossa on 3 riviä ja jokaisella rivillä on 4 saraketta alla olevan kuvan mukaisesti.

Kaksiulotteisen taulukon elementit C ++ -ohjelmoinnissa

Kolmiulotteiset taulukot toimivat myös samalla tavalla. Esimerkiksi:

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

Tähän ryhmään x mahtuu enintään 24 elementtiä.

Matriisin elementtien kokonaismäärä voidaan selvittää yksinkertaisesti kertomalla sen mitat:

 2 x 4 x 3 = 24

Moniulotteinen taulukon alustus

Kuten tavallinen taulukko, voimme alustaa moniulotteisen taulukon useammalla kuin yhdellä tavalla.

1. Kaksiulotteisen taulukon alustus

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

Edellä olevaa menetelmää ei suositella. Parempi tapa aloittaa tämä taulukko samoilla taulukkoelementeillä on annettu alla:

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

Tässä taulukossa on 2 riviä ja 3 saraketta, minkä vuoksi meillä on kaksi riviä elementtejä, joissa kussakin on 3 elementtiä.

Alustetaan kaksiulotteinen taulukko C ++: ssa

2. Kolmiulotteisen taulukon alustus

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

Tämä ei ole hyvä tapa alustaa kolmiulotteinen taulukko. Parempi tapa alustaa tämä taulukko 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) ) );

Huomaa tämän kolmiulotteisen taulukon mitat.

Ensimmäisellä ulottuvuudella on arvo 2. Joten kaksi elementtiä, jotka muodostavat ensimmäisen ulottuvuuden, ovat:

 Elementti 1 = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) Elementti 2 = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9)) 

Toisella ulottuvuudella on arvo 3. Huomaa, että kussakin ensimmäisen ulottuvuuden elementissä on kolme elementtiä:

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

Lopuksi inttoisen ulottuvuuden kussakin elementissä on neljä numeroa:

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

Esimerkki 1: Kaksiulotteinen taulukko

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

Tuotos

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

Edellä olevassa esimerkissä olemme alustaneet kaksiulotteisen inttaulukon nimeltä testi, jossa on 3 "riviä" ja 2 "saraketta".

Tässä olemme käyttäneet sisäkkäistä forsilmukkaa taulukon elementtien näyttämiseen.

  • ulompi silmukka i == 0on i == 2pääsy rivit array
  • sisempi silmukka j == 0ja j == 1pääsy sarakkeet array

Lopuksi tulostamme taulukkoelementit jokaiseen iteraatioon.

Esimerkki 2: Syötteen ottaminen kaksiulotteiselle taulukolle

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

Tuotos

 Syötä 6 numeroa: 1 2 3 4 5 6 Numerot ovat: numerot (0) (0): 1 numerot (0) (1): 2 numeroa (0) (2): 3 numeroa (1) (0): 4 numerot (1) (1): 5 numerot (1) (2): 6

Here, we have used a nested for loop to take the input of the 2d array. Once all the input has been taken, we have used another nested for loop to print the array members.

Example 3: Three Dimensional Array

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

Output

 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

The basic concept of printing elements of a 3d array is similar to that of a 2d array.

However, since we are manipulating 3 dimensions, we use a nested for loop with 3 total loops instead of just 2:

  • the outer loop from i == 0 to i == 1 accesses the first dimension of the array
  • the middle loop from j == 0 to j == 2 accesses the second dimension of the array
  • sisimmän silmukan päässä k == 0päästä k == 1matriisin kolmanteen ulottuvuuteen

Kuten voimme nähdä, matriisin monimutkaisuus kasvaa eksponentiaalisesti mittojen kasvaessa.

Mielenkiintoisia artikkeleita...