Šioje pamokoje sužinosime apie daugialypius matricas C ++. Tiksliau, kaip juos deklaruoti, pasiekti ir efektyviai naudoti mūsų programoje.
C ++ sistemoje galime sukurti masyvo masyvą, žinomą kaip daugiamatį masyvą. Pavyzdžiui:
int x(3)(4);
Čia x yra dvimatis masyvas. Jame gali būti daugiausia 12 elementų.
Mes galime galvoti apie šį masyvą kaip lentelę su 3 eilėmis ir kiekvienoje eilutėje yra 4 stulpeliai, kaip parodyta žemiau.

Panašiai veikia ir trimatės masyvai. Pavyzdžiui:
float x(2)(4)(3);
Šiame masyve x gali būti daugiausia 24 elementai.
Visą masyvo elementų skaičių galime sužinoti paprasčiausiai padauginę jo matmenis:
2 x 4 x 3 = 24
Daugialypis masyvo inicijavimas
Kaip ir įprastą masyvą, daugiamatį masyvą galime inicijuoti daugiau nei vienu būdu.
1. Dvimatės masyvo inicijavimas
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Minėtas metodas nėra pageidaujamas. Geresnis būdas inicijuoti šį masyvą su tais pačiais masyvo elementais yra pateiktas žemiau:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Šiame masyve yra 2 eilutės ir 3 stulpeliai, todėl mes turime dvi elementų eilutes su 3 elementais.

2. Trimatės masyvo inicijavimas
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);
Tai nėra geras būdas inicijuoti trimatį masyvą. Geresnis būdas inicijuoti šį masyvą yra:
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) ) );
Atkreipkite dėmesį į šios trimatės masyvo matmenis.
Pirmasis aspektas turi vertę 2
. Taigi, du elementai, sudarantys pirmąjį aspektą, yra šie:
1 elementas = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) 2 elementas = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9))
Antroji dimensija turi vertę 3
. Atkreipkite dėmesį, kad kiekvienas iš pirmojo aspekto elementų turi po tris elementus:
(3, 4, 2, 3), (0, -3, 9, 11) ir (23, 12, 23, 2) 1 elementui. (13, 4, 56, 3), (5, 9, 3) , 5) ir (5, 1, 4, 9) 2 elementui.
Galiausiai int
kiekviename iš antrojo matmens elementų yra keturi skaičiai:
(3, 4, 2, 3) (0, -3, 9, 11)……
1 pavyzdys: dviejų matmenų masyvas
// 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; )
Rezultatas
testas (0) (0) = 2 testas (0) (1) = -5 testas (1) (0) = 4 testas (1) (1) = 0 testas (2) (0) = 9 testas (2) (1) = 1
Ankstesniame pavyzdyje mes inicijavome dviejų matmenų int
masyvą, pavadintą testas, kuriame yra 3 „eilutės“ ir 2 „stulpeliai“.
Čia mes panaudojome įdėtą for
kilpą masyvo elementams rodyti.
- išorinis kilpa iš
i == 0
įi == 2
prieigos masyvo eilučių - vidinis kilpa nuo
j == 0
ikij == 1
prieiti prie masyvo stulpelių
Galiausiai kiekviename kartojime atspausdiname masyvo elementus.
2 pavyzdys: dviejų matmenų masyvo įvesties paėmimas
#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; )
Rezultatas
Įveskite 6 skaičius: 1 2 3 4 5 6 Skaičiai yra šie: skaičiai (0) (0): 1 skaičiai (0) (1): 2 skaičiai (0) (2): 3 skaičiai (1) (0): 4 skaičiai (1) (1): 5 skaičiai (1) (2): 6
Here, we have used a nested for
loop to take the input of the 2d array. Once all the input has been taken, we have used another nested for
loop to print the array members.
Example 3: Three Dimensional 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; )
Output
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
The basic concept of printing elements of a 3d array is similar to that of a 2d array.
However, since we are manipulating 3 dimensions, we use a nested for loop with 3 total loops instead of just 2:
- the outer loop from
i == 0
toi == 1
accesses the first dimension of the array - the middle loop from
j == 0
toj == 2
accesses the second dimension of the array - vidinė kilpa nuo
k == 0
ikik == 1
pasiekia trečiąjį masyvo matmenį
Kaip matome, masyvo sudėtingumas didėja eksponentiškai, didėjant matmenims.