I denne vejledning lærer vi om multidimensionelle arrays i C ++. Mere specifikt, hvordan man erklærer dem, får adgang til dem og bruger dem effektivt i vores program.
I C ++ kan vi oprette et array af et array, kendt som et flerdimensionelt array. For eksempel:
int x(3)(4);
Her er x et todimensionelt array. Det kan rumme maksimalt 12 elementer.
Vi kan tænke på denne matrix som en tabel med 3 rækker, og hver række har 4 kolonner som vist nedenfor.

Tredimensionelle arrays fungerer også på en lignende måde. For eksempel:
float x(2)(4)(3);
Denne matrix x kan maksimalt indeholde 24 elementer.
Vi kan finde ud af det samlede antal elementer i matrixen ved blot at multiplicere dens dimensioner:
2 x 4 x 3 = 24
Multidimensionel matrixinitialisering
Som et normalt array kan vi initialisere et multidimensionelt array på mere end en måde.
1. Initialisering af todimensionelt array
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Ovenstående metode foretrækkes ikke. En bedre måde at initialisere denne matrix med de samme matrixelementer er angivet nedenfor:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Denne matrix har 2 rækker og 3 kolonner, hvorfor vi har to rækker af elementer med 3 elementer hver.

2. Initialisering af tredimensionelt array
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);
Dette er ikke en god måde at initialisere et tredimensionelt array på. En bedre måde at initialisere denne matrix på er:
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) ) );
Læg mærke til dimensionerne på dette tredimensionelle array.
Den første dimension har værdien 2
. Så de to elementer, der omfatter den første dimension, er:
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))
Den anden dimension har værdien 3
. Bemærk, at hvert af elementerne i den første dimension har tre elementer hver:
(3, 4, 2, 3), (0, -3, 9, 11) og (23, 12, 23, 2) for element 1. (13, 4, 56, 3), (5, 9, 3 , 5) og (5, 1, 4, 9) for element 2.
Endelig er der fire int
tal inde i hvert af elementerne i den anden dimension:
(3, 4, 2, 3) (0, -3, 9, 11)……
Eksempel 1: To-dimensionelt array
// 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; )
Produktion
test (0) (0) = 2 test (0) (1) = -5 test (1) (0) = 4 test (1) (1) = 0 test (2) (0) = 9 test (2) (1) = 1
I ovenstående eksempel har vi initialiseret et to-dimensionelt int
array med navnet test, der har 3 "rækker" og 2 "kolonner".
Her har vi brugt den indlejrede for
løkke til at vise arrayelementerne.
- den ydre sløjfe fra for
i == 0
ati == 2
få adgang til rækkerne i arrayet - den indre sløjfe fra for
j == 0
atj == 1
få adgang til kolonnerne i arrayet
Endelig udskriver vi matrixelementerne i hver iteration.
Eksempel 2: Optagelse af input til todimensionelt array
#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; )
Produktion
Indtast 6 numre: 1 2 3 4 5 6 Tallene er: tal (0) (0): 1 numre (0) (1): 2 numre (0) (2): 3 numre (1) (0): 4 numre (1) (1): 5 numre (1) (2): 6
Her har vi brugt en indlejret for
sløjfe til at tage input fra 2d-arrayet. Når alt input er taget, har vi brugt en anden indlejret for
løkke til at udskrive array-medlemmerne.
Eksempel 3: Tredimensionelt 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; )
Produktion
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
Det grundlæggende koncept for udskrivning af elementer i et 3d-array svarer til et 2d-array.
Men da vi manipulerer 3 dimensioner, bruger vi en indlejret for loop med 3 samlede sløjfer i stedet for kun 2:
- den ydre sløjfe fra for
i == 0
at fåi == 1
adgang til den første dimension af arrayet - den midterste sløjfe fra for
j == 0
at fåj == 2
adgang til den anden dimension af arrayet - den inderste sløjfe fra
k == 0
tilk == 1
adgang til den tredje dimension af arrayet
Som vi kan se, stiger arrayets kompleksitet eksponentielt med stigningen i dimensioner.