Susunan Multidimensi C ++ (susunan ke-2 dan 3d)

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.

Elemen dalam susunan dua dimensi dalam Pengaturcaraan C ++

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.

Memulakan array dua dimensi dalam C ++

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 intnombor 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 intarray dua dimensi bernama ujian yang mempunyai 3 "baris" dan 2 "lajur".

Di sini, kami telah menggunakan forgelung bersarang untuk memaparkan elemen array.

  • gelung luar dari i == 0untuk i == 2mengakses baris larik
  • gelung dalam j == 0untuk j == 1mengakses 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 to i == 1 accesses the first dimension of the array
  • the middle loop from j == 0 to j == 2 accesses the second dimension of the array
  • gelung paling dalam dari k == 0untuk k == 1mengakses dimensi ketiga larik

Seperti yang kita lihat, kerumitan array meningkat secara eksponen dengan peningkatan dimensi.

Artikel menarik...