Menu
CoddyTech

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 20

Setelah 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.

challenge icon

Tantangan

Mudah

Buat 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 n yang mewakili jumlah elemen yang awalnya ditambahkan ke set
  • Lalu n bilangan bulat untuk dimasukkan ke set
  • Bilangan bulat m yang mewakili jumlah elemen yang akan dihapus
  • Lalu m bilangan bulat yang mewakili elemen yang akan dihapus dari set

Programmu harus:

  1. Membuat std::set<int> kosong
  2. Membaca jumlah elemen yang akan ditambahkan dan memasukkannya ke set menggunakan .insert()
  3. Mencetak ukuran awal set setelah semua penyisipan
  4. Membaca jumlah elemen yang akan dihapus
  5. Untuk setiap elemen yang akan dihapus, menggunakan .erase() untuk mencoba menghapusnya
  6. Setelah setiap percobaan penghapusan, mencetak ukuran set saat ini
  7. 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;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online