std::vector Temelleri: push_back, size, capacity
Vektörler oluşturun, büyütün ve inceleyin; kapasite ile boyut arasındaki farkı anlayın
std::vector Temelleri: push_back, size, capacity, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
Neden std::vector?
std::vector, C++'ta varsayılan kapsayıcıdır. Otomatik olarak büyür, belleği sizin için yönetir ve O(1) rastgele erişim sağlar. Kullanılmaması için özel bir nedeniniz yoksa onu kullanın.
Ekleme ve Bildirim
<vector> başlığını ekleyin ve öğe türünü şablon parametresi olarak kullanarak bildirim yapın.
#include <vector>
std::vector<int> nums;
std::vector<std::string> names = {"Ada", "Bob"};Başlatma Biçimleri
Bir vektörü başlatmanın birkaç yolu vardır:
std::vector<int> a; // empty
std::vector<int> b(5); // 5 zeros
std::vector<int> c(5, 42); // 5 copies of 42
std::vector<int> d{1, 2, 3}; // {1,2,3}
std::vector<int> e(d); // copy of dpush_back: Sona Ekleme
push_back ile sona bir öğe ekleyin. Amortize edilmiş O(1).
std::vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);emplace_back: Yerinde Oluşturma
emplace_back, bağımsız değişkenlerini öğe oluşturucusuna iletir; geçici nesne oluşturulmaz. Özel oluşturma mantığı olan türlerde biraz daha hızlıdır.
std::vector<std::pair<int,int>> v;
v.emplace_back(1, 2); // constructs a pair in placesize ve capacity
İki farklı kavram:
- size — şu anda depolanan öğe sayısı
- capacity — yeniden bellek ayırmadan depolanabilecek öğe sayısı
capacity parçalar hâlinde, genellikle iki katına çıkarak büyür.
size ve capacity Değerlerini İnceleme
Karşılık gelen üye işlevleri kullanın:
std::vector<int> v;
for (int i = 0; i < 10; ++i) {
v.push_back(i);
std::cout << "size=" << v.size() << " capacity=" << v.capacity() << "\n";
}reserve: capacity için Önceden Bellek Ayırma
Kaç öğe ekleyeceğinizi biliyorsanız, tekrarlanan yeniden bellek ayırma işlemlerini önlemek için önce reserve çağrısını yapın.
std::vector<int> v;
v.reserve(1000000); // preallocate
for (int i = 0; i < 1000000; ++i) v.push_back(i);shrink_to_fit: Belleği Serbest Bırakma
Çok sayıda öğeyi sildikten sonra kullanılmayan capacity alanını shrink_to_fit ile serbest bırakın. Bu davranış zorunlu değildir; uygulama fazladan alanı koruyabilir.
Öğelere Erişme
Dört yol vardır:
v[i]— denetimsizv.at(i)— sınırları denetler, istisna fırlatırv.front()— ilk öğev.back()— son öğe
Boşluk Denetimi ve Temizleme
empty() ile boşluğu denetleyin. clear() ile tüm öğeleri kaldırın; capacity değişmez.
Hızlı Kontrol
push_back neden amortize edilmiş O(1) sürede çalışır?
Özet
std::vector, O(1) rastgele erişim sağlayan büyüyebilir bir dizidir. size() öğe sayısını, capacity() depolama boyutunu belirtir. Son boyut biliniyorsa reserve() yeniden bellek ayırmayı önler.
Sıkça Sorulan Sorular
“std::vector Temelleri: push_back, size, capacity” dersi ücretsiz mi?
Evet — “std::vector Temelleri: push_back, size, capacity” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“std::vector Temelleri: push_back, size, capacity” dersinde ne öğreneceğim?
Vektörler oluşturun, büyütün ve inceleyin; kapasite ile boyut arasındaki farkı anlayın C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“std::vector Temelleri: push_back, size, capacity” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- std::vector Temelleri: push_back, size, capacity
- Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler
- Vektörleri Değiştirme: insert, erase, clear
- Vector ve std::array ile C Dizisi Karşılaştırması