İçeriğe geç
Başlangıç · Sonraki hedefe 100 XP
Son hareketler
Henüz bir öğrenme hareketi yok. İlk derse başlayın.

Programlama Temelleri

C++ vector: Boyut, kapasite ve geçersizleşme

vector bitişik bellekte dinamik sayıda eleman taşır. size mevcut elemanı, capacity yeniden ayırmadan tutulabilecek kapasiteyi anlatır; bu iki sayı aynı değildir.

Bu derste neler var?

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.

C++ vector: Boyut, kapasite ve geçersizleşme akışı: Kapasite → Ekleme → Geçerli referanslar
Kapasite → Ekleme → Geçerli referanslar. Şema ilişkiyi gösterir; bütün uygulamanın yerine geçmez.

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

DurumBeklenen yaklaşımNeden?
reserve 8Size değişmezYalnızca kapasite ayrılır
resize 8Sekiz elemanBoyut değişir
Yeniden ayırmaEski referansı kullanmaDepolama taşınabilir

Uygulama görevi

reserve yerine resize kullanın. Boyutun ve varsayılan elemanların neden değiştiğini gösterin.

  1. İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
  2. Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
  3. 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

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.

Bir adım daha ilerlediniz.

Dersi bitirdiyseniz tamamlandı olarak işaretleyin. İlerlemeniz bu cihazda saklanır.

Akademi menüsü

Akademide ara

En az 2 karakter yazın.