C ++ Multidimensional Arrays (array ke-2 dan 3d)

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.

Elemen dalam array dua dimensi dalam Pemrograman C ++

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.

Menginisialisasi larik dua dimensi dalam C ++

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 intangka 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 intarray dua dimensi bernama test yang memiliki 3 "baris" dan 2 "kolom".

Di sini, kami telah menggunakan forloop bersarang untuk menampilkan elemen array.

  • loop luar dari i == 0untuk i == 2mengakses baris array
  • loop dalam dari j == 0untuk j == 1mengakses 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 forloop bersarang untuk mengambil input dari array 2d. Setelah semua input diambil, kami telah menggunakan forloop 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 == 0untuk i == 1mengakses dimensi pertama dari larik
  • loop tengah dari j == 0untuk j == 2mengakses dimensi kedua dari array
  • loop terdalam dari k == 0untuk k == 1mengakses dimensi ketiga dari larik

Seperti yang bisa kita lihat, kompleksitas array meningkat secara eksponensial dengan peningkatan dimensi.

Artikel yang menarik...