Dalam tutorial ini, kita akan belajar tentang array multi-dimensi dalam C ++. Lebih khusus lagi, bagaimana mendeklarasikannya, mengaksesnya, dan menggunakannya secara efisien dalam program kita.
Di C ++, kita bisa membuat larik dari larik, yang disebut larik multidimensi. Sebagai contoh:
int x(3)(4);
Di sini, x adalah larik dua dimensi. Itu dapat menampung maksimal 12 elemen.
Kita dapat menganggap array ini sebagai tabel dengan 3 baris dan setiap baris memiliki 4 kolom seperti yang ditunjukkan di bawah ini.

Array tiga dimensi juga bekerja dengan cara yang sama. Sebagai contoh:
float x(2)(4)(3);
Larik x ini dapat menampung maksimal 24 elemen.
Kita dapat mengetahui jumlah total elemen dalam array hanya dengan mengalikan dimensinya:
2 x 4 x 3 = 24
Inisialisasi Array Multidimensi
Seperti array biasa, kita dapat menginisialisasi array multidimensi dengan lebih dari satu cara.
1. Inisialisasi array dua dimensi
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Metode di atas tidak disukai. Cara yang lebih baik untuk menginisialisasi array ini dengan elemen array yang sama diberikan di bawah ini:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Array ini memiliki 2 baris dan 3 kolom, itulah sebabnya kami memiliki dua baris elemen dengan masing-masing 3 elemen.

2. Inisialisasi array 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 menginisialisasi larik tiga dimensi. Cara yang lebih baik untuk menginisialisasi 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 larik tiga dimensi ini.
Dimensi pertama memiliki nilai 2
. Jadi, dua elemen penyusun 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 memiliki nilai 3
. Perhatikan bahwa setiap elemen dari dimensi pertama memiliki 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, ada empat int
angka di dalam masing-masing 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; )
Keluaran
tes (0) (0) = 2 tes (0) (1) = -5 tes (1) (0) = 4 tes (1) (1) = 0 tes (2) (0) = 9 tes (2) (1) = 1
Dalam contoh di atas, kami telah menginisialisasi int
array dua dimensi bernama test yang memiliki 3 "baris" dan 2 "kolom".
Di sini, kami telah menggunakan for
loop bersarang untuk menampilkan elemen array.
- loop luar dari
i == 0
untuki == 2
mengakses baris array - loop dalam dari
j == 0
untukj == 1
mengakses kolom dari array
Terakhir, kami mencetak elemen array di setiap iterasi.
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; )
Keluaran
Masukkan 6 angka: 1 2 3 4 5 6 Angka tersebut adalah: angka (0) (0): 1 angka (0) (1): 2 angka (0) (2): 3 angka (1) (0): 4 angka (1) (1): 5 angka (1) (2): 6
Di sini, kami telah menggunakan for
loop bersarang untuk mengambil input dari array 2d. Setelah semua input diambil, kami telah menggunakan for
loop bersarang lainnya untuk mencetak anggota array.
Contoh 3: Array Tiga Dimensi
// 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; )
Keluaran
tes (0) (0) (0) = 1 tes (0) (0) (1) = 2 tes (0) (1) (0) = 3 tes (0) (1) (1) = 4 tes ( 0) (2) (0) = 5 tes (0) (2) (1) = 6 tes (1) (0) (0) = 7 tes (1) (0) (1) = 8 tes (1) (1) (0) = 9 tes (1) (1) (1) = 10 tes (1) (2) (0) = 11 tes (1) (2) (1) = 12
Konsep dasar pencetakan elemen larik 3d mirip dengan larik 2d.
Namun, karena kami memanipulasi 3 dimensi, kami menggunakan loop for bersarang dengan 3 total loop, bukan hanya 2:
- loop luar dari
i == 0
untuki == 1
mengakses dimensi pertama dari larik - loop tengah dari
j == 0
untukj == 2
mengakses dimensi kedua dari array - loop terdalam dari
k == 0
untukk == 1
mengakses dimensi ketiga dari larik
Seperti yang bisa kita lihat, kompleksitas array meningkat secara eksponensial dengan peningkatan dimensi.