Menghapus Elemen
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 13 dari 66.
Terkadang kamu perlu menghapus elemen dari vector, bukan hanya menambahkannya. Rust menyediakan dua method utama untuk menghapus elemen, masing-masing dirancang untuk situasi yang berbeda.
.pop() method menghapus dan mengembalikan elemen terakhir dari vector:
let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // menghapus 40, mengembalikan Some(40)
// numbers sekarang berisi [10, 20, 30]Perhatikan bahwa .pop() mengembalikan Option, yaitu Some(value) jika ada elemen yang dihapus, atau None jika vector sudah kosong. Ini membuatnya aman digunakan bahkan pada vector kosong.
method .remove() menghapus elemen pada indeks tertentu dan mengembalikan elemen tersebut:
let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // menghapus "banana"
// fruits sekarang berisi ["apple", "cherry"]Saat kamu menggunakan .remove(), semua elemen setelah indeks yang dihapus bergeser ke kiri untuk mengisi celah. Operasi ini bisa lebih lambat untuk vector berukuran besar saat menghapus elemen dari awal atau tengah, karena banyak elemen perlu dipindahkan.
Kedua method memerlukan vector yang mutable karena keduanya mengubah isinya. Pilih .pop() saat kamu ingin menghapus elemen dari akhir, dan .remove() saat kamu perlu menghapus elemen dari posisi tertentu.
Tantangan
MudahKamu akan menerima dua input: pertama, daftar angka yang dipisahkan koma, dan kedua, indeks yang akan dihapus. Baca kedua input, buat vector dari angka-angka tersebut, hapus elemen pada indeks yang ditentukan, lalu cetak elemen yang tersisa pada baris terpisah.
Persyaratan:
- Baca input pertama yang berisi angka-angka yang dipisahkan koma (misalnya,
10,20,30,40,50) - Pisahkan string berdasarkan koma dan ubah setiap angka menjadi bilangan bulat
- Buat vector yang dapat diubah dari angka-angka tersebut
- Baca input kedua dan ubah menjadi bilangan bulat yang menunjukkan indeks
- Gunakan
.remove()untuk menghapus elemen pada indeks tersebut - Cetak setiap elemen yang tersisa pada baris terpisah
Input:
- Baris pertama: Bilangan bulat yang dipisahkan koma (misalnya,
10,20,30,40,50) - Baris kedua: Bilangan bulat yang menunjukkan indeks yang akan dihapus
Output: Cetak setiap elemen vector yang tersisa pada baris terpisah
Coba sendiri
use std::io;
fn main() {
// Baca angka-angka yang dipisahkan dengan koma
let mut numbers_input = String::new();
io::stdin().read_line(&mut numbers_input).expect("Failed to read line");
// Baca indeks elemen yang akan dihapus
let mut index_input = String::new();
io::stdin().read_line(&mut index_input).expect("Failed to read line");
// TODO: Tulis kodemu di bawah ini
// 1. Pisahkan numbers_input berdasarkan koma dan ubah menjadi bilangan bulat
// 2. Buat vektor yang dapat diubah dari angka-angka tersebut
// 3. Ubah index_input menjadi bilangan bulat
// 4. Hapus elemen pada indeks yang ditentukan
// 5. Cetak setiap elemen yang tersisa pada baris terpisah
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode AkhirLatihan sendiri: Compiler Rust online