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
- Dasar std::vector: push_back, size, capacity
- Melakukan Iterasi pada Vektor: indeks, range-for, iterator
- Memodifikasi Vektor: insert, erase, clear
- Vector vs std::array vs Array C