W tym samouczku nauczymy się wielowymiarowych tablic w C ++. Dokładniej, jak je zadeklarować, uzyskać do nich dostęp i efektywnie z nich korzystać w naszym programie.
W C ++ możemy stworzyć tablicę tablicy, znaną jako tablica wielowymiarowa. Na przykład:
int x(3)(4);
Tutaj x jest dwuwymiarową tablicą. Może pomieścić maksymalnie 12 elementów.
Możemy myśleć o tej tablicy jako o tabeli z 3 wierszami, a każdy wiersz ma 4 kolumny, jak pokazano poniżej.

Tablice trójwymiarowe również działają w podobny sposób. Na przykład:
float x(2)(4)(3);
Ta tablica x może zawierać maksymalnie 24 elementy.
Całkowitą liczbę elementów w tablicy możemy po prostu pomnożyć jej wymiary:
2 x 4 x 3 = 24
Inicjalizacja tablicy wielowymiarowej
Podobnie jak zwykła tablica, możemy zainicjować tablicę wielowymiarową na więcej niż jeden sposób.
1. Inicjalizacja dwuwymiarowej tablicy
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Powyższa metoda nie jest preferowana. Lepszy sposób na zainicjowanie tej tablicy przy użyciu tych samych elementów tablicy jest podany poniżej:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Ta tablica ma 2 wiersze i 3 kolumny, dlatego mamy dwa rzędy elementów po 3 elementy w każdym.

2. Inicjalizacja tablicy trójwymiarowej
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);
To nie jest dobry sposób na inicjalizację trójwymiarowej tablicy. Lepszym sposobem na zainicjowanie tej tablicy jest:
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) ) );
Zwróć uwagę na wymiary tej trójwymiarowej tablicy.
Pierwszy wymiar ma wartość 2
. Zatem dwa elementy składające się na pierwszy wymiar to:
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))
Drugi wymiar ma wartość 3
. Zwróć uwagę, że każdy z elementów pierwszego wymiaru ma po trzy elementy:
(3, 4, 2, 3), (0, -3, 9, 11) i (23, 12, 23, 2) dla elementu 1. (13, 4, 56, 3), (5, 9, 3 , 5) i (5, 1, 4, 9) dla elementu 2.
Wreszcie, int
w każdym z elementów drugiego wymiaru znajdują się cztery liczby:
(3, 4, 2, 3) (0, -3, 9, 11)……
Przykład 1: dwuwymiarowa tablica
// 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; )
Wynik
test (0) (0) = 2 testy (0) (1) = -5 testy (1) (0) = 4 testy (1) (1) = 0 testy (2) (0) = 9 testów (2) (1) = 1
W powyższym przykładzie zainicjowaliśmy dwuwymiarową int
tablicę o nazwie test, która ma 3 „wiersze” i 2 „kolumny”.
Tutaj użyliśmy zagnieżdżonej for
pętli do wyświetlenia elementów tablicy.
- zewnętrzna pętla z,
i == 0
abyi == 2
uzyskać dostęp do wierszy tablicy - pętla wewnętrzna z,
j == 0
abyj == 1
uzyskać dostęp do kolumn tablicy
Na koniec drukujemy elementy tablicy w każdej iteracji.
Przykład 2: Przyjmowanie danych wejściowych dla tablicy dwuwymiarowej
#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; )
Wynik
Wpisz 6 liczb: 1 2 3 4 5 6 Liczby to: liczby (0) (0): 1 liczby (0) (1): 2 liczby (0) (2): 3 liczby (1) (0): 4 liczby (1) (1): 5 liczb (1) (2): 6
Tutaj użyliśmy zagnieżdżonej for
pętli, aby pobrać dane wejściowe z tablicy 2d. Po pobraniu wszystkich danych wejściowych użyliśmy kolejnej zagnieżdżonej for
pętli do wydrukowania elementów tablicy.
Przykład 3: Trójwymiarowa tablica
// 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; )
Wynik
test (0) (0) (0) = 1 test (0) (0) (1) = 2 testy (0) (1) (0) = 3 testy (0) (1) (1) = 4 testy ( 0) (2) (0) = 5 testów (0) (2) (1) = 6 testów (1) (0) (0) = 7 testów (1) (0) (1) = 8 testów (1) (1) (0) = 9 testów (1) (1) (1) = 10 testów (1) (2) (0) = 11 testów (1) (2) (1) = 12
Podstawowa koncepcja drukowania elementów tablicy 3d jest podobna do tej z tablicy 2D.
Ponieważ jednak manipulujemy 3 wymiarami, używamy zagnieżdżonej pętli for z trzema pętlami łącznie zamiast tylko 2:
- zewnętrzna pętla od,
i == 0
aby uzyskaći == 1
dostęp do pierwszego wymiaru tablicy - środkowa pętla od,
j == 0
aby uzyskaćj == 2
dostęp do drugiego wymiaru tablicy - najbardziej wewnętrzna pętla od,
k == 0
aby uzyskaćk == 1
dostęp do trzeciego wymiaru tablicy
Jak widać, złożoność tablicy rośnie wykładniczo wraz ze wzrostem wymiarów.