Tablice wielowymiarowe C ++ (tablice drugiego i trzeciego stopnia)

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.

Elementy w dwuwymiarowej tablicy w programowaniu w C ++

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.

Inicjowanie dwuwymiarowej tablicy w C ++

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, intw 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ą inttablicę o nazwie test, która ma 3 „wiersze” i 2 „kolumny”.

Tutaj użyliśmy zagnieżdżonej forpętli do wyświetlenia elementów tablicy.

  • zewnętrzna pętla z, i == 0aby i == 2uzyskać dostęp do wierszy tablicy
  • pętla wewnętrzna z, j == 0aby j == 1uzyskać 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 forpętli, aby pobrać dane wejściowe z tablicy 2d. Po pobraniu wszystkich danych wejściowych użyliśmy kolejnej zagnieżdżonej forpę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 == 0aby uzyskać i == 1dostęp do pierwszego wymiaru tablicy
  • środkowa pętla od, j == 0aby uzyskać j == 2dostęp do drugiego wymiaru tablicy
  • najbardziej wewnętrzna pętla od, k == 0aby uzyskać k == 1dostęp do trzeciego wymiaru tablicy

Jak widać, złożoność tablicy rośnie wykładniczo wraz ze wzrostem wymiarów.

Interesujące artykuły...