C ++ Dizileri (Örneklerle)

Bu eğitimde dizilerle çalışmayı öğreneceğiz. Örnekler yardımıyla C ++ programlamasında dizi öğelerini bildirmeyi, başlatmayı ve bunlara erişmeyi öğreneceğiz.

C ++ 'da, bir dizi aynı türden birden çok değeri depolayabilen bir değişkendir. Örneğin,

Bir sınıfın 27 öğrencisi olduğunu ve hepsinin notlarını kaydetmemiz gerektiğini varsayalım. 27 ayrı değişken oluşturmak yerine, basitçe bir dizi oluşturabiliriz:

 double grade(27);

Burada, derece, en fazla 27 tür öğesi tutabilen bir dizidir double.

C ++ 'da, dizilerin boyutu ve türü bildiriminden sonra değiştirilemez.

C ++ Dizi Bildirimi

 dataType arrayName(arraySize);

Örneğin,

 int x(6);

Buraya,

  • int - depolanacak elemanın türü
  • x - dizinin adı
  • 6 - dizinin boyutu

C ++ Dizisindeki Erişim Öğeleri

C ++ 'da, bir dizideki her öğe bir sayıyla ilişkilendirilir. Sayı, dizi dizini olarak bilinir. Bu indisleri kullanarak bir dizinin elemanlarına erişebiliriz.

 // syntax to access array elements array(index);

Yukarıda gördüğümüz x dizisini düşünün.

C ++ 'da bir dizinin öğeleri

Hatırlanması Gereken Birkaç Şey:

  • Dizi indeksleri ile başlar 0. Anlamı x (0), dizinde saklanan ilk elemandır 0.
  • Bir dizinin boyutu ise n, son eleman dizinde saklanır (n-1). Bu örnekte, x (5) son elemandır.
  • Bir dizinin elemanları ardışık adreslere sahiptir. Örneğin, başlangıç ​​adresinin x(0)2120d olduğunu varsayalım. Daha sonra, sonraki elemanın x(1)adresi 2124d, adresi x(2)2128d olacaktır ve bu böyle devam eder.
    Burada her elemanın boyutu int4 bayt artırılır. Bunun nedeni boyutunun 4 bayt olmasıdır.

C ++ Dizi Başlatma

C ++ 'da, bildirim sırasında bir diziyi başlatmak mümkündür. Örneğin,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
C ++ Dizi öğeleri ve verileri

Bildirim sırasında diziyi başlatmak için başka bir yöntem:

 // declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);

Burada dizinin boyutundan bahsetmedik. Bu gibi durumlarda, derleyici boyutu otomatik olarak hesaplar.

Boş Üyelerle C ++ Dizi

C ++ 'da, bir dizinin bir boyutu varsa, dizide nn adede kadar öğe saklayabiliriz. Bununla birlikte, n sayıdan az öğe saklarsak ne olur?

Örneğin,

 // store only 3 elements in the array int x(6) = (19, 10, 8);

Burada, x dizisinin boyutu var 6. Ancak biz onu sadece 3 elemanla başlattık.

Bu gibi durumlarda, derleyici kalan yerlere rastgele değerler atar. Çoğu zaman, bu rastgele değer basittir 0.

Boş dizi üyelerine otomatik olarak 0 değeri atanır

Dizi öğeleri nasıl eklenir ve yazdırılır?

 int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);

Örnek 1: Dizi Öğelerini Görüntüleme

 #include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )

Çıktı

 Rakamlar: 7 5 6 12 35 Rakamlar: 7 5 6 12 35

Burada, bir kullanmış forgelen yineleme için döngü i = 0için i = 4. Her yinelemede yazdırdık numbers(i).

Dizinin öğelerini yazdırmak için yine aralık tabanlı bir for döngüsü kullandık. Bu döngü hakkında daha fazla bilgi edinmek için C ++ Ranged for Loop'a bakın.

Not: Aralık tabanlı döngümüzde, aralık bildirimi const int &nyerine kodu kullandık int n. Ancak, const int &ndaha çok tercih edilir çünkü:

  1. Kullanımı int nbasitçe her yineleme sırasında dizi öğelerini n değişkenine kopyalar. Bu, hafıza açısından verimli değildir.
    & n, ancak, verilere yeni bir değişkene kopyalamadan erişmek için dizi elemanlarının hafıza adresini kullanır. Bu, hafıza açısından verimli.
  2. Biz sadece dizi elemanlarını basıyoruz, değiştirmiyoruz. Bu nedenle, constdizinin değerlerini yanlışlıkla değiştirmemek için kullanırız.

Örnek 2: Kullanıcıdan Girdi Alın ve Bir Dizide Saklayın

 #include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )

Çıktı

 Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15

Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers(i).

Then, we used another for loop to print all the array elements.

Example 3: Display Sum and Average of Array Elements Using for Loop

 #include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )

Output

 The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333

In this program:

  1. We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
    Here, sum =0 and count = 0.
  2. Then we used a range based for loop to print the array elements. In each iteration of the loop, we add the current array element to sum.
  3. Ayrıca 1, for döngüsünün sonunda dizinin boyutunu elde edebilmemiz için her yinelemede count değerini artırıyoruz .
  4. Tüm öğeleri yazdırdıktan sonra, tüm sayıların toplamını ve ortalamasını yazdırıyoruz. Sayıların ortalaması şöyle veriliraverage = sum / count;

Not:for Normal bir döngü yerine aralıklı bir döngü kullandık for.

Normal bir fordöngü, dizinin boyutuna göre verilen yineleme sayısını belirlememizi gerektirir.

Ancak aralıklı bir fordöngü bu tür özellikleri gerektirmez.

C ++ Sınır Dışı Dizi

10 boyutunda bir dizi bildirirsek, dizi 0'dan 9'a kadar olan indisleri içerecektir.

Ancak, öğeye indeks 10 veya 10'dan fazla erişmeye çalışırsak, Tanımsız Davranışla sonuçlanacaktır.

Ilginç makaleler...