0Pricing
C++ Academy · Ders

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

  1. std::vector Temelleri: push_back, size, capacity
  2. Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler
  3. Vektörleri Değiştirme: insert, erase, clear
  4. Vector ve std::array ile C Dizisi Karşılaştırması
← C++ Academy Sayfasına Dön