C ++ Çok Boyutlu Diziler (2. ve 3d diziler)

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.

C ++ Programlamada iki boyutlu dizideki öğeler

Üç 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.

C ++ 'da iki boyutlu bir diziyi başlatma

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, intikinci 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, int3 "satır" ve 2 "sütun" içeren test adında iki boyutlu bir dizi başlattık .

Burada, fordizi elemanlarını görüntülemek için iç içe döngüyü kullandık .

  • dış döngü i == 0için i == 2dizisinin sıraları erişim
  • iç döngü j == 0için j == 1dizinin 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, for2d 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 == 0için i == 1dizinin ilk boyut kere
  • Orta döngü j == 0için j == 2dizinin ikinci boyut kere
  • dan en iç döngü k == 0için k == 1dizinin üçüncü boyutu kere

Gördüğümüz gibi, boyutlardaki artışla birlikte dizinin karmaşıklığı da katlanarak artıyor.

Ilginç makaleler...