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.

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ä.

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 int
toisen 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 int
taulukon nimeltä testi, jossa on 3 "riviä" ja 2 "saraketta".
Tässä olemme käyttäneet sisäkkäistä for
silmukkaa taulukon elementtien näyttämiseen.
- ulompi silmukka
i == 0
oni == 2
pääsy rivit array - sisempi silmukka
j == 0
jaj == 1
pää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
toi == 1
accesses the first dimension of the array - the middle loop from
j == 0
toj == 2
accesses the second dimension of the array - sisimmän silmukan päässä
k == 0
päästäk == 1
matriisin kolmanteen ulottuvuuteen
Kuten voimme nähdä, matriisin monimutkaisuus kasvaa eksponentiaalisesti mittojen kasvaessa.