Ebben az oktatóanyagban megtudhatjuk a többdimenziós tömböket a C ++ nyelven. Pontosabban arról, hogy miként kell deklarálni őket, hozzáférni hozzájuk és hatékonyan felhasználni őket programunkban.
A C ++ - ban létrehozhatunk egy tömb tömbjét, amelyet többdimenziós tömbnek nevezünk. Például:
int x(3)(4);
Itt x kétdimenziós tömb. Legfeljebb 12 elemet képes befogadni.
Ezt a tömböt úgy gondolhatjuk, mint egy 3 soros táblázatot, és minden sorban 4 oszlop van, az alábbiak szerint.

A háromdimenziós tömbök is hasonló módon működnek. Például:
float x(2)(4)(3);
Ez az x tömb maximum 24 elemet tartalmazhat.
Megtalálhatjuk a tömb összes elemének számát, egyszerűen megszorozva a méreteit:
2 x 4 x 3 = 24
Többdimenziós tömb inicializálása
A normál tömbhöz hasonlóan egy többdimenziós tömböt többféleképpen is inicializálhatunk.
1. Kétdimenziós tömb inicializálása
int test(2)(3) = (2, 4, 5, 9, 0, 19);
A fenti módszer nem előnyös. A tömb ugyanazokkal a tömbelemekkel történő inicializálásának jobb módja az alábbiakban található:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Ennek a tömbnek 2 sora és 3 oszlopa van, ezért van két sor elemünk, mindegyikben 3 elem.

2. Háromdimenziós tömb inicializálása
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);
Ez nem jó módszer a háromdimenziós tömb inicializálására. A tömb inicializálásának jobb módja:
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) ) );
Figyelje meg ennek a háromdimenziós tömbnek a méreteit.
Az első dimenzió értéke van 2
. Tehát az első dimenziót alkotó két elem a következő:
1. elem = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) 2. elem = ((13, 4, 56, 3), ( (5, 9, 3, 5), (5, 1, 4, 9)
A második dimenziónak megvan az értéke 3
. Vegye figyelembe, hogy az első dimenzió minden elemének három-három eleme van:
(3, 4, 2, 3), (0, -3, 9, 11) és (23, 12, 23, 2) az 1. elemnél. (13, 4, 56, 3), (5, 9, 3 , 5) és (5, 1, 4, 9) a 2. elemre.
Végül négy int
szám található a második dimenzió minden elemében:
(3, 4, 2, 3) (0, -3, 9, 11)…
1. példa: Kétdimenziós tömb
// 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; )
Kimenet
teszt (0) (0) = 2 teszt (0) (1) = -5 teszt (1) (0) = 4 teszt (1) (1) = 0 teszt (2) (0) = 9 teszt (2) (1) = 1
A fenti példában egy kétdimenziós int
tömböt neveztünk el, amelynek neve 3 "sor" és 2 "oszlop".
Itt a beágyazott for
hurkot használtuk a tömb elemek megjelenítéséhez.
- A külső hurok
i == 0
ai == 2
hozzáférést a sorok a tömb - a belső hurok
j == 0
aj == 1
hozzáférést az oszlopok a tömb
Végül minden iterációban kinyomtatjuk a tömb elemeket.
2. példa: Input felvétele kétdimenziós tömbhöz
#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; )
Kimenet
Írjon be 6 számot: 1 2 3 4 5 6 A számok a következők: számok (0) (0): 1 számok (0) (1): 2 számok (0) (2): 3 számok (1) (0): 4 számok (1) (1): 5 számok (1) (2): 6
Itt beágyazott for
hurkot használtunk a 2d tömb bemenetének felvételére. Miután az összes bemenet megtörtént, egy másik beágyazott for
hurkot használtunk a tömb tagok kinyomtatására.
3. példa: Háromdimenziós tömb
// 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; )
Kimenet
teszt (0) (0) (0) = 1 teszt (0) (0) (1) = 2 teszt (0) (1) (0) = 3 teszt (0) (1) (1) = 4 teszt ( 0) (2) (0) = 5 teszt (0) (2) (1) = 6 teszt (1) (0) (0) = 7 teszt (1) (0) (1) = 8 teszt (1) (1) (0) = 9 teszt (1) (1) (1) = 10 teszt (1) (2) (0) = 11 teszt (1) (2) (1) = 12
A 3D tömb elemeinek nyomtatásának alapkoncepciója hasonló a 2d tömb elveihez.
Mivel azonban 3 dimenziót manipulálunk, csak 2 helyett 3 teljes hurokkal rendelkező beágyazott hurkot használunk:
- a külső hurok
i == 0
azi == 1
hozzáfér az első dimenzió a tömb - a középső hurok
j == 0
azj == 2
hozzáfér a második dimenzió a tömb - A legbelső hurok
k == 0
ak == 1
hozzáfér a harmadik dimenzió a tömb
Mint láthatjuk, a tömb bonyolultsága a dimenziók növekedésével exponenciálisan növekszik.