SİBERSALDİRİ.COM · KONU ODAKLI DERS
Bu derste kazanacaklarınız
- Kapasite ile Ekleme arasındaki ilişkiyi açıklamak.
- “reserve eleman ekler mi?” sorusuna gerekçeli yanıt vermek.
- Örneği değiştirip beklenen ve gözlenen davranışı karşılaştırmak.
Çalışma mantığı ve güven sınırı
push_back büyüme sırasında belleği yeniden ayırabilir. Yeniden ayırma eski işaretçi, referans ve iteratorları geçersizleştirebilir. reserve kapasite ayırır fakat eleman oluşturmaz; resize eleman sayısını değiştirir. Performans için ön ayırma yaparken dış girdiden gelen dev bir sayıyı sınırsız belleğe çevirmeyin.
Açıklamalı örnek
Aşağıdaki parça kavramı görünür kılar. Komut veya kod içeren örnekleri üretim sisteminde değil, size ait ayrı deneme ortamında değerlendirin. Mimari şema ve politika örnekleri çalıştırılabilir program değildir.
#include <vector>
#include <iostream>
int main(){
std::vector<int> v; v.reserve(8); v.push_back(3);
std::cout<<v.size()<<' '<<(v.capacity()>=8);
}Beklenen sonuç ve yorumu
size 1 olur; kapasite en az 8'dir.
Karşılaştırmalı durumlar
| Durum | Beklenen yaklaşım | Neden? |
|---|---|---|
| reserve 8 | Size değişmez | Yalnızca kapasite ayrılır |
| resize 8 | Sekiz eleman | Boyut değişir |
| Yeniden ayırma | Eski referansı kullanma | Depolama taşınabilir |
Uygulama görevi
reserve yerine resize kullanın. Boyutun ve varsayılan elemanların neden değiştiğini gösterin.
- İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
- Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
- Sonucu yukarıdaki karşılaştırma tablosuyla değerlendirin. Uymayan durumda hangi varsayımın yanlış olabileceğini açıklayın.
Sık yapılan hata ve düzeltme yönü
reserve sonrasında henüz oluşmamış elemanlara indeksle yazmayın.
Kendinizi sınayın
reserve eleman ekler mi?
Açıklamalı yanıt: Hayır. Depolama kapasitesini düzenler; size değişmez.
İlgili derslerle ilerleyin
- C++ STL: Konteyner, iterator ve algoritma
- C++ list: Bağlı düğümler ve erişim maliyeti
- C++ stack: Son giren ilk çıkar sözleşmesi
- C++ queue: Kuyruk sırası ve işlem hızı
Teknik başvuru
Bu dersin anlatımı ve örnekleri akademi için yeniden hazırlanmıştır. Aşağıdaki bağlantı, kullanılan teknoloji veya güvenlik yaklaşımının ayrıntılarını doğrulamak için teknik başvurudur.
