0Pricing
C++ Academy · Pelajaran

Memodifikasi Vektor: insert, erase, clear

Sisipkan, hapus, dan kosongkan elemen sambil memperhatikan aturan pembatalan iterator

Memodifikasi Vektor: insert, erase, clear adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Menyisipkan di Akhir

Penyisipan tercepat: push_back atau emplace_back — keduanya menambahkan elemen ke akhir dalam O(1) teramortisasi.

Menyisipkan di Posisi Sembarang

insert(pos, value) menggeser semua elemen setelah pos ke kanan. Operasi O(n).

std::vector<int> v = {1, 2, 4, 5};
v.insert(v.begin() + 2, 3);   // {1, 2, 3, 4, 5}

Menyisipkan Rentang

Sisipkan semua elemen dari kontainer lain sekaligus.

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}

Menyisipkan Beberapa Salinan

Sisipkan n salinan dari nilai yang sama.

std::vector<int> v = {1, 4};
v.insert(v.begin() + 1, 2, 99);   // {1, 99, 99, 4}

Menghapus Satu Elemen

erase(pos) menghapus elemen pada iterator dan menggeser semua elemen setelahnya ke kiri. Mengembalikan iterator ke elemen berikutnya.

std::vector<int> v = {1, 2, 3, 4};
v.erase(v.begin() + 1);   // {1, 3, 4}

Menghapus Rentang

Hapus semua elemen dalam rentang setengah terbuka [first, last).

v.erase(v.begin() + 1, v.begin() + 3);

Idiom Erase-Remove

Untuk menghapus semua elemen yang cocok dengan sebuah predikat tanpa meninggalkan celah, gabungkan std::remove_if dan erase.

#include <algorithm>
v.erase(
    std::remove_if(v.begin(), v.end(), [](int x) { return x < 0; }),
    v.end()
);

C++20 std::erase dan std::erase_if

C++20 menambahkan fungsi bebas yang membungkus idiom erase-remove.

std::erase(v, 0);                    // remove all 0s
std::erase_if(v, [](int x) { return x < 0; });

clear: Menghapus Semua Elemen

clear() menghapus semua elemen, tetapi mempertahankan capacity. Berguna jika Anda berencana mengisi vector kembali.

pop_back: Menghapus Elemen Terakhir

Penghapusan elemen terakhir dalam O(1). Tidak ada nilai yang dikembalikan — ambil elemennya terlebih dahulu jika Anda membutuhkannya.

int last = v.back();
v.pop_back();

Aturan Invalidasi Iterator

insert dan erase membuat setiap iterator mulai dari posisi yang diubah dan seterusnya menjadi tidak valid. Erase mengembalikan iterator valid berikutnya agar Anda dapat melanjutkan iterasi.

Pemeriksaan Singkat

Apa yang dilakukan std::remove_if terhadap vector jika digunakan sendiri?

Ringkasan

insert dan erase bekerja pada posisi sembarang dalam O(n). Gunakan push_back/pop_back untuk O(1) di akhir. Terapkan idiom erase-remove (atau std::erase_if dari C++20) untuk menghapus elemen yang cocok.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memodifikasi Vektor: insert, erase, clear” gratis?

Ya — teks lengkap “Memodifikasi Vektor: insert, erase, clear” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memodifikasi Vektor: insert, erase, clear”?

Sisipkan, hapus, dan kosongkan elemen sambil memperhatikan aturan pembatalan iterator Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Memodifikasi Vektor: insert, erase, clear” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar std::vector: push_back, size, capacity
  2. Melakukan Iterasi pada Vektor: indeks, range-for, iterator
  3. Memodifikasi Vektor: insert, erase, clear
  4. Vector vs std::array vs Array C
← Kembali ke C++ Academy