Modül dersleri (1/2)
Diziler ve Vektörler
C++'da, veri koleksiyonlarının yönetimi temel olarak iki araç aracılığıyla yapılır: eski stil diziler (C stili diziler) ve vektörler (std::vector). Statik ve dinamik bellek arasındaki farkı anlamak, verimli kod yazmanın temelidir.
1. Statik Diziler (C-stili Diziler)
Dizi, bitişik bellek konumlarında depolanan aynı türdeki öğelerin bir koleksiyonudur. Statik dizinin boyutu derleme zamanında bilinmelidir ve daha sonra değiştirilemez:
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integersTemel Özellikler:
- Sabit Boyut: Çalışma zamanında öğe ekleyemez veya kaldıramazsınız.
- Yığın Tahsisi: Tahsis edilmesi ve serbest bırakılması çok hızlıdır.
- Erişim:
[]indeks operatörü aracılığıyla yapılır (örneğin, ilk öğe içingrades[0]).
2. Dinamik Vektörler (std::vector)
C++ Standart Şablon Kitaplığı (STL), dinamik bir diziyi temsil eden std::vector sınıfını sağlar. Bunu kullanmak için <vector> başlığını eklemelisiniz:
#include <vector>
std::vector<int> numbers; // Creates an empty vector of integersOrtak İşlemler:
- Sona Ekle:
.push_back(value)yöntemi vektörün sonuna bir öğe ekler ve gerekirse belleği otomatik olarak yeniden tahsis eder. - Boyut:
.size()yöntemi, vektörde mevcut olan öğelerin sayısını döndürür. - Güvenli Erişim:
[]operatörüne ek olarak, dizinin sınırların dışında olması durumunda bir istisna oluşturan.at(index)yöntemini (ör.numbers.at(0)) kullanabilirsiniz.
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3Kendin dene
Sayılar adlı tam sayıların std::vektörünü bildirin. .Push_back() yöntemini kullanarak içine 10, 20 ve 30 değerlerini ekleyin, ardından Numbers.size() yöntemini kullanarak boyutunu yazdırın.
İpucu göster
Vektörü 'std::vector<int> sayılar;' ile bildirin, üç sayıyı '.Push_back(value)' ile ekleyin ve 'std::cout << number.size();' ile yazdırın.
3 denemeden sonra çözüm mevcut
Temel olarak 5 öğeden oluşan bir dereceler dizisi tanımlanır. Dizideki tüm elemanların toplamını hesaplamak için bir for döngüsü yazın, bunu sum değişkeninde saklayın ve std::cout kullanarak yazdırın.
İpucu göster
Bir 'for (int i = 0; i < 5; ++i)' döngüsü kullanın ve döngü içindeki her öğeyi 'sum +=grades[i];' ile toplayın.
3 denemeden sonra çözüm mevcut
C++'da bir std::vector öğesinin sonuna bir öğe eklemenin doğru yöntemi nedir?
std::vector<int> numbers; // come aggiungere il valore 50?