Vektörleri Değiştirme: insert, erase, clear
Yineleyicilerin geçersiz kılınması kurallarını göz önünde bulundurarak öğeleri ekleyin, silin ve temizleyin
Vektörleri Değiştirme: insert, erase, clear, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 3. 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.
Sona Ekleme
En hızlı ekleme yöntemi: push_back veya emplace_back; ikisi de amortize edilmiş O(1) sürede sona ekler.
Keyfi Bir Konuma Ekleme
insert(pos, value), pos konumundan sonraki her şeyi sağa kaydırır. O(n) zamanlı bir işlemdir.
std::vector<int> v = {1, 2, 4, 5};
v.insert(v.begin() + 2, 3); // {1, 2, 3, 4, 5}Bir Aralık Ekleme
Başka bir kapsayıcıdaki tüm öğeleri tek seferde ekleyin.
std::vector<int> v = {1, 5};
std::vector<int> mid = {2, 3, 4};
v.insert(v.begin() + 1, mid.begin(), mid.end());
// {1, 2, 3, 4, 5}Birden Çok Kopya Ekleme
Aynı değerin n kopyasını ekleyin.
std::vector<int> v = {1, 4};
v.insert(v.begin() + 1, 2, 99); // {1, 99, 99, 4}Tek Bir Öğeyi Silme
erase(pos), yineleyicinin gösterdiği öğeyi kaldırır ve sonraki her şeyi sola kaydırır. Sonraki öğeyi gösteren bir yineleyici döndürür.
std::vector<int> v = {1, 2, 3, 4};
v.erase(v.begin() + 1); // {1, 3, 4}Bir Aralığı Silme
[first, last) yarı açık aralığındaki tüm öğeleri kaldırın.
v.erase(v.begin() + 1, v.begin() + 3);Silme-Kaldırma Kalıbı
Bir koşula uyan tüm öğeleri aralıkta boşluk bırakmadan kaldırmak için std::remove_if ile erase işlevlerini birleştirin.
#include <algorithm>
v.erase(
std::remove_if(v.begin(), v.end(), [](int x) { return x < 0; }),
v.end()
);C++20 std::erase ve std::erase_if
C++20, silme-kaldırma kalıbını saran serbest işlevler ekledi.
std::erase(v, 0); // remove all 0s
std::erase_if(v, [](int x) { return x < 0; });clear: Tüm Öğeleri Kaldırma
clear() tüm öğeleri kaldırır, ancak capacity değerini korur. Vektörü yeniden doldurmayı planladığınızda kullanışlıdır.
pop_back: Son Öğeyi Kaldırma
Son öğeyi O(1) sürede kaldırır. Dönüş değeri yoktur; gerekiyorsa önce öğeyi alın.
int last = v.back();
v.pop_back();Yineleyici Geçersiz Kılma Kuralları
insert ve erase, değiştirilen konumdan sonraki tüm yineleyicileri geçersiz kılar. erase, sonraki geçerli yineleyiciyi döndürür; böylece yinelemeye devam edebilirsiniz.
Hızlı Kontrol
std::remove_if tek başına bir vektöre ne yapar?
Özet
insert ve erase, O(n) sürede keyfi konumlarda çalışır. Sonda O(1) sürede işlem yapmak için push_back/pop_back kullanın. Eşleşen öğeleri silmek için silme-kaldırma kalıbını (veya C++20 std::erase_if) uygulayın.
Sıkça Sorulan Sorular
“Vektörleri Değiştirme: insert, erase, clear” dersi ücretsiz mi?
Evet — “Vektörleri Değiştirme: insert, erase, clear” 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.
“Vektörleri Değiştirme: insert, erase, clear” dersinde ne öğreneceğim?
Yineleyicilerin geçersiz kılınması kurallarını göz önünde bulundurarak öğeleri ekleyin, silin ve temizleyin 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 3. dersidir.
“Vektörleri Değiştirme: insert, erase, clear” 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ı