Menghapus Elemen
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 38 dari 56.
Terkadang kamu perlu menghapus elemen dari set saat tidak lagi diperlukan. Method .erase() memungkinkan kamu menghapus elemen tertentu dengan memberikan nilainya.
Berikut cara menghapus sebuah elemen dari set:
std::set<int> numbers = {10, 20, 30, 40};
numbers.erase(20); // Menghapus elemen 20Setelah memanggil .erase(20), set hanya akan berisi {10, 30, 40}. Jika kamu mencoba menghapus elemen yang tidak ada di set, tidak ada yang terjadi, set tetap tidak berubah dan tidak terjadi error.
Ini membuat .erase() aman digunakan meskipun kamu tidak yakin elemennya ada. Ini sangat berguna untuk menjaga koleksi tetap rapi saat kamu perlu menghapus item tertentu berdasarkan input pengguna atau logika program.
Tantangan
MudahBuat program yang menunjukkan cara menghapus elemen dari std::set menggunakan method .erase(). Tantangan ini akan menguji pemahamanmu tentang cara menghapus elemen tertentu dengan aman dari set dan mengamati hasilnya.
Input berikut akan diberikan:
- Bilangan bulat
nyang mewakili jumlah elemen yang awalnya ditambahkan ke set - Lalu
nbilangan bulat untuk dimasukkan ke set - Bilangan bulat
myang mewakili jumlah elemen yang akan dihapus - Lalu
mbilangan bulat yang mewakili elemen yang akan dihapus dari set
Programmu harus:
- Membuat
std::set<int>kosong - Membaca jumlah elemen yang akan ditambahkan dan memasukkannya ke set menggunakan
.insert() - Mencetak ukuran awal set setelah semua penyisipan
- Membaca jumlah elemen yang akan dihapus
- Untuk setiap elemen yang akan dihapus, menggunakan
.erase()untuk mencoba menghapusnya - Setelah setiap percobaan penghapusan, mencetak ukuran set saat ini
- Terakhir, mengiterasi elemen yang tersisa di set dan mencetaknya dalam urutan terurut
Gunakan format output persis berikut:
Ukuran awal set:
Initial size: [size]Setelah setiap percobaan penghapusan:
After removing [number]: size = [current_size]Elemen yang tersisa pada akhirnya:
Remaining elements: [element1] [element2] [element3] ...Ingat bahwa .erase() menangani dengan aman percobaan menghapus elemen yang tidak ada di set. Set akan tetap tidak berubah dan tidak terjadi error. Gunakan perulangan for berbasis rentang untuk mencetak elemen yang tersisa. Elemen-elemen tersebut akan otomatis ditampilkan dalam urutan terurut karena set menyimpan elemennya dalam urutan terurut.
Coba sendiri
#include <iostream>
#include <set>
using namespace std;
int main() {
// Baca jumlah elemen yang akan ditambahkan
int n;
cin >> n;
// Buat set kosong
set<int> mySet;
// Baca dan masukkan n elemen
for (int i = 0; i < n; i++) {
int element;
cin >> element;
// Masukkan elemen ke dalam set
}
// Baca jumlah elemen yang akan dihapus
int m;
cin >> m;
// TODO: Tulis kodemu di bawah ini
// 1. Tampilkan ukuran awal set
// 2. Untuk setiap elemen yang akan dihapus, gunakan .erase() dan tampilkan ukuran setelah setiap penghapusan
// 3. Tampilkan elemen yang tersisa dalam set
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi Vektor3Proyek: Alat Daftar Tugas
Ikhtisar ProyekMenambahkan Tugas6set (Elemen Unik)
Mengenal std::setMembuat set & Menambahkan ElemenMemeriksa ElemenMenghapus ElemenMenelusuri setRangkuman: Angka UnikLatihan sendiri: Compiler C++ online