Šajā apmācībā mēs uzzināsim par daudzdimensiju blokiem C ++. Precīzāk, kā tos deklarēt, piekļūt tiem un efektīvi izmantot mūsu programmā.
Programmā C ++ mēs varam izveidot masīva masīvu, kas pazīstams kā daudzdimensionāls masīvs. Piemēram:
int x(3)(4);
Šeit x ir divdimensiju masīvs. Tajā var būt ne vairāk kā 12 elementi.
Mēs varam domāt par šo masīvu kā tabulu ar 3 rindām, un katrā rindā ir 4 kolonnas, kā parādīts zemāk.

Arī trīsdimensiju bloki darbojas līdzīgi. Piemēram:
float x(2)(4)(3);
Šajā masīvā x var būt ne vairāk kā 24 elementi.
Masīva elementu kopējo skaitu mēs varam uzzināt, reizinot tā izmērus:
2 x 4 x 3 = 24
Daudzdimensionālu masīvu inicializēšana
Tāpat kā parastu masīvu, mēs varam inicializēt daudzdimensionālu masīvu vairāk nekā vienā veidā.
1. Divdimensiju masīva inicializēšana
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Iepriekš minētā metode nav ieteicama. Labāks veids, kā inicializēt šo masīvu ar tiem pašiem masīva elementiem, ir norādīts zemāk:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Šajā masīvā ir 2 rindas un 3 kolonnas, tāpēc mums ir divas elementu rindas ar 3 elementiem katrā.

2. Trīsdimensiju masīva inicializēšana
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);
Tas nav labs veids, kā inicializēt trīsdimensiju masīvu. Labāks veids, kā inicializēt šo masīvu, ir:
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) ) );
Ievērojiet šī trīsdimensiju masīva izmērus.
Pirmajai dimensijai ir vērtība 2
. Tātad divi elementi, kas veido pirmo dimensiju, ir:
1. elements = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) 2. elements = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9))
Otrajai dimensijai ir vērtība 3
. Ievērojiet, ka katram no pirmās dimensijas elementiem katram ir trīs elementi:
(3, 4, 2, 3), (0, -3, 9, 11) un (23, 12, 23, 2) 1. elementam. (13, 4, 56, 3), (5, 9, 3 , 5) un (5, 1, 4, 9) 2. elementam.
Visbeidzot, int
katrā otrās dimensijas elementā ir četri skaitļi:
(3, 4, 2, 3) (0, -3, 9, 11)……
1. piemērs: divdimensiju masīvs
// 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; )
Rezultāts
tests (0) (0) = 2 tests (0) (1) = -5 tests (1) (0) = 4 tests (1) (1) = 0 tests (2) (0) = 9 tests (2) (1) = 1
Iepriekš minētajā piemērā mēs esam inicializējuši divdimensiju int
masīvu ar nosaukumu tests, kurā ir 3 "rindas" un 2 "kolonnas".
Šeit mēs esam izmantojuši ligzdoto for
cilpu, lai parādītu masīva elementus.
- ārējā cilpa no,
i == 0
laii == 2
piekļūtu masīva rindām - iekšējā cilpa no,
j == 0
laij == 1
piekļūtu masīva kolonnām
Visbeidzot, katrā atkārtojumā mēs izdrukājam masīva elementus.
2. piemērs: ievade divdimensiju masīvam
#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; )
Rezultāts
Ievadiet 6 numurus: 1 2 3 4 5 6 Skaitļi ir: skaitļi (0) (0): 1 numuri (0) (1): 2 numuri (0) (2): 3 numuri (1) (0): 4 numuri (1) (1): 5 numuri (1) (2): 6
Šeit mēs esam izmantojuši ligzdotu for
cilpu, lai ņemtu 2d masīva ievadi. Kad viss ievadītais elements ir izmantots, for
masīva dalībnieku drukāšanai esam izmantojuši citu ligzdotu cilpu.
3. piemērs: trīsdimensiju masīvs
// 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; )
Rezultāts
tests (0) (0) (0) = 1 tests (0) (0) (1) = 2 tests (0) (1) (0) = 3 tests (0) (1) (1) = 4 tests ( 0) (2) (0) = 5 tests (0) (2) (1) = 6 tests (1) (0) (0) = 7 tests (1) (0) (1) = 8 tests (1) (1) (0) = 9 tests (1) (1) (1) = 10 tests (1) (2) (0) = 11 tests (1) (2) (1) = 12
3D masīva elementu drukāšanas pamatkoncepcija ir līdzīga 2d masīva koncepcijai.
Tomēr, tā kā mēs manipulējam ar 3 dimensijām, mēs izmantojam ligzdotu cilpu ar 3 kopējām cilpām, nevis tikai 2:
- ārējā cilpa no
i == 0
līdzi == 1
piekļūst masīva pirmajai dimensijai - vidējā cilpa no
j == 0
līdzj == 2
piekļūst masīva otrajai dimensijai - iekšējā cilpa no
k == 0
līdzk == 1
piekļūst masīva trešajai dimensijai
Kā redzam, masīva sarežģītība palielinās eksponenciāli, palielinoties izmēriem.