Bu eğitimde, C ++ 'da çok boyutlu diziler hakkında bilgi edineceğiz. Daha spesifik olarak, bunları nasıl ilan edeceğiniz, onlara nasıl erişeceğiniz ve programımızda verimli bir şekilde nasıl kullanacağınız.
C ++ 'da, çok boyutlu dizi olarak bilinen bir dizi dizisi oluşturabiliriz. Örneğin:
int x(3)(4);
Burada x iki boyutlu bir dizidir. Maksimum 12 element tutabilir.
Bu diziyi 3 satırlık bir tablo olarak düşünebiliriz ve her satırda 4 sütun vardır.

Üç boyutlu diziler de benzer şekilde çalışır. Örneğin:
float x(2)(4)(3);
Bu x dizisi maksimum 24 eleman tutabilir.
Dizideki toplam öğe sayısını, basitçe boyutlarını çarparak bulabiliriz:
2 x 4 x 3 = 24
Çok Boyutlu Dizi Başlatma
Normal bir dizi gibi, çok boyutlu bir diziyi birden fazla yolla başlatabiliriz.
1. İki boyutlu dizinin başlatılması
int test(2)(3) = (2, 4, 5, 9, 0, 19);
Yukarıdaki yöntem tercih edilmez. Bu diziyi aynı dizi öğeleriyle başlatmanın daha iyi bir yolu aşağıda verilmiştir:
int test(2)(3) = ( (2, 4, 5), (9, 0, 19));
Bu dizide 2 satır ve 3 sütun vardır, bu nedenle her biri 3 öğeli iki öğe satırımız var.

2. Üç boyutlu dizinin başlatılması
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);
Bu, üç boyutlu bir diziyi başlatmak için iyi bir yol değildir. Bu diziyi başlatmanın daha iyi bir yolu şudur:
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) ) );
Bu üç boyutlu dizinin boyutlarına dikkat edin.
İlk boyutun değeri vardır 2
. Dolayısıyla, ilk boyutu oluşturan iki öğe şunlardır:
Öğe 1 = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) Öğe 2 = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9))
İkinci boyutun değeri vardır 3
. İlk boyutun her bir öğesinin üç öğeye sahip olduğuna dikkat edin:
Element 1 için (3, 4, 2, 3), (0, -3, 9, 11) ve (23, 12, 23, 2). (13, 4, 56, 3), (5, 9, 3 , 5) ve (5, 1, 4, 9) Element 2 için.
Son olarak, int
ikinci boyutun her bir öğesinin içinde dört sayı vardır :
(3, 4, 2, 3) (0, -3, 9, 11)……
Örnek 1: İki Boyutlu Dizi
// 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; )
Çıktı
test (0) (0) = 2 test (0) (1) = -5 test (1) (0) = 4 test (1) (1) = 0 test (2) (0) = 9 test (2) (1) = 1
Yukarıdaki örnekte, int
3 "satır" ve 2 "sütun" içeren test adında iki boyutlu bir dizi başlattık .
Burada, for
dizi elemanlarını görüntülemek için iç içe döngüyü kullandık .
- dış döngü
i == 0
içini == 2
dizisinin sıraları erişim - iç döngü
j == 0
içinj == 1
dizinin sütun erişim
Son olarak, her yinelemede dizi öğelerini yazdırıyoruz.
Örnek 2: İki Boyutlu Dizi için Girdi Alma
#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; )
Çıktı
6 rakam girin: 1 2 3 4 5 6 Rakamlar: numaralar (0) (0): 1 numara (0) (1): 2 numara (0) (2): 3 numara (1) (0): 4 sayı (1) (1): 5 numara (1) (2): 6
Burada, for
2d dizisinin girişini almak için iç içe geçmiş bir döngü kullandık . Tüm girdi alındıktan sonra for
, dizi üyelerini yazdırmak için başka bir iç içe döngü kullandık .
Örnek 3: Üç Boyutlu Dizi
// 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; )
Çıktı
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
Bir 3B dizinin baskı elemanlarının temel kavramı, 2d dizisininkine benzer.
Ancak, 3 boyutu manipüle ettiğimizden, yalnızca 2 yerine 3 toplam döngü içeren iç içe geçmiş bir döngü kullanıyoruz:
- dış döngü
i == 0
içini == 1
dizinin ilk boyut kere - Orta döngü
j == 0
içinj == 2
dizinin ikinci boyut kere - dan en iç döngü
k == 0
içink == 1
dizinin üçüncü boyutu kere
Gördüğümüz gibi, boyutlardaki artışla birlikte dizinin karmaşıklığı da katlanarak artıyor.