CodeBlanks Logo Icon CodeBlanks

Özet - Vektörler

push, get ve for'u birleştirerek bir alışveriş sepeti yazarsın.

Vektörler özeti

Vec<T> büyüyebilen, heap'te duran bir dizidir. Oluşturma: Vec::new(), vec![..], vec![x; n], with_capacity. Değiştirme: push, pop (Option), insert, remove, extend, clear. Okuma: v[i] (panic riski) ya da get (Option). Dolaşma: &v okur, &mut v değiştirir, v tüketir.

Sıralama ve süzme

Yerinde çalışan kullanışlı yöntemler:

let mut v = vec![5, 3, 8, 3, 1, 8];
v.sort();                  // [1, 3, 3, 5, 8, 8]
v.dedup();                 // [1, 3, 5, 8]
v.retain(|&x| x > 2);      // [3, 5, 8]
v.reverse();               // [8, 5, 3]

Ondalıklı sayılar sort ile sıralanamaz (NaN yüzünden); v.sort_by(|a, b| a.total_cmp(b)) kullanılır.

Uygulama Temizle ve süz

let mut v = vec![5, 3, 8, 3, 1, 8]; için sırayla sort, dedup ve retain(|&x| x > 2) uygula; sonucu {:?} ile yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn main() {
    let mut v = vec![5, 3, 8, 3, 1, 8];
    v.sort();
    v.dedup();
    v.retain(|&x| x > 2);
    println!("{:?}", v);
}

Beklenen çıktı

[3, 5, 8]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>let mut v = vec![3, 1, 3, 2]; v.sort(); v.dedup();</code> sonrası <code>v</code> nedir?

  • [1, 3, 2]
  • [1, 2, 3] Doğru cevap
  • [1, 2, 3, 3]
  • [3, 1, 2]

Açıklama: dedup yalnızca ardışık tekrarları siler; bu yüzden önce sort gerekir.

2 Koşula göre tut

Soru
let mut v = vec![1, 3, 5, 8];
v.____(|&x| x > 2);   // [3, 5, 8]
Cevap
let mut v = vec![1, 3, 5, 8];
v.retain(|&x| x > 2);   // [3, 5, 8]

Açıklama: retain koşulu sağlayan elemanları yerinde tutar.

3 Yöntem ve etkisi

Kavram Anlamı
sort() Küçükten büyüğe
dedup() Ardışık tekrarları siler
retain(..) Koşula uyanları tutar
reverse() Sırayı ters çevirir

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma