Dalam tutorial ini, kita akan belajar mengenai tatasusunan pelbagai dimensi di C ++. Lebih khusus lagi, bagaimana menyatakannya, mengaksesnya, dan menggunakannya dengan cekap dalam program kami.
Dalam C ++, kita dapat membuat susunan larik, yang dikenali sebagai tatasusunan multidimensi. Sebagai contoh:
int x(3)(4);
Di sini, x adalah tatasusunan dua dimensi. Ia boleh memuatkan maksimum 12 elemen.
Kita boleh menganggap susunan ini sebagai jadual dengan 3 baris dan setiap baris mempunyai 4 lajur seperti yang ditunjukkan di bawah.

Susunan tiga dimensi juga berfungsi dengan cara yang serupa. Sebagai contoh:
float x(2)(4)(3);
Susunan x ini boleh memuatkan maksimum 24 elemen.
Kita dapat mengetahui jumlah elemen dalam array hanya dengan mengalikan dimensinya:
2 x 4 x 3 = 24
Permulaan Array Multidimensi
Seperti tatasusunan biasa, kita dapat menginisialisasi susunan multidimensi dengan lebih dari satu cara.
1. Permulaan array dua dimensi
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Kaedah di atas tidak digemari. Kaedah yang lebih baik untuk memulakan array ini dengan elemen array yang sama diberikan di bawah:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Susunan ini mempunyai 2 baris dan 3 lajur, sebab itulah kami mempunyai dua baris elemen dengan masing-masing 3 elemen.

2. Permulaan susunan tiga dimensi
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);
Ini bukan cara yang baik untuk memulakan array tiga dimensi. Kaedah yang lebih baik untuk memulakan array ini adalah:
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) ) );
Perhatikan dimensi susunan tiga dimensi ini.
Dimensi pertama mempunyai nilai 2
. Jadi, dua elemen yang merangkumi dimensi pertama adalah:
Elemen 1 = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) Elemen 2 = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9))
Dimensi kedua mempunyai nilai 3
. Perhatikan bahawa setiap elemen dimensi pertama mempunyai tiga elemen masing-masing:
(3, 4, 2, 3), (0, -3, 9, 11) dan (23, 12, 23, 2) untuk Elemen 1. (13, 4, 56, 3), (5, 9, 3 , 5) dan (5, 1, 4, 9) untuk Elemen 2.
Akhirnya, terdapat empat int
nombor di dalam setiap elemen dimensi kedua:
(3, 4, 2, 3) (0, -3, 9, 11)……
Contoh 1: Array Dua Dimensi
// 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; )
Pengeluaran
ujian (0) (0) = 2 ujian (0) (1) = -5 ujian (1) (0) = 4 ujian (1) (1) = 0 ujian (2) (0) = 9 ujian (2) (1) = 1
Dalam contoh di atas, kami telah menginisialisasi int
array dua dimensi bernama ujian yang mempunyai 3 "baris" dan 2 "lajur".
Di sini, kami telah menggunakan for
gelung bersarang untuk memaparkan elemen array.
- gelung luar dari
i == 0
untuki == 2
mengakses baris larik - gelung dalam
j == 0
untukj == 1
mengakses lajur larik
Akhirnya, kami mencetak elemen array dalam setiap lelaran.
Contoh 2: Mengambil Input untuk Array Dua Dimensi
#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; )
Pengeluaran
Masukkan 6 nombor: 1 2 3 4 5 6 Nombor tersebut adalah: nombor (0) (0): 1 nombor (0) (1): 2 nombor (0) (2): 3 nombor (1) (0): 4 nombor (1) (1): 5 nombor (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 - gelung paling dalam dari
k == 0
untukk == 1
mengakses dimensi ketiga larik
Seperti yang kita lihat, kerumitan array meningkat secara eksponen dengan peningkatan dimensi.