- Katılım
- 7 Ocak 2026
- Mesajlar
- 234
- Tepkime puanı
- 2
- Puanları
- 18
Rust'ta dizilerin (Arrays) boyutu sabittir, ancak gerçek dünyada veriler genellikle dinamiktir. İşte bu noktada devreye Vector (
Vektörler veriyi Heap (öbek) üzerinde saklar, bu da onlara esneklik kazandırır.
Rust
Rust
Vec<T>) girer. Vektörler, çalışma zamanında büyüyüp küçülebilen, aynı tipteki verileri yan yana saklayan dinamik dizilerdir.Vektörler veriyi Heap (öbek) üzerinde saklar, bu da onlara esneklik kazandırır.
1. Vektör Oluşturma
Bir vektör oluşturmanın en yaygın iki yolu vardır:Vec::new(): Boş bir vektör oluşturur. Veri ekledikçe tipi netleşir.vec![]makrosu: Başlangıç değerleri ile vektör oluşturmanın kısa yoludur.
Kod:
let mut sayilar: Vec<i32> = Vec::new(); // Boş vektör
let renkler = vec!["Kırmızı", "Yeşil", "Mavi"]; // Başlangıç değerli vektör
2. Veri Ekleme ve Güncelleme
Bir vektöre veri eklemek için değişkeninmut (mutable) olması gerekir. push metodu veriyi vektörün sonuna ekler.Rust
Kod:
let mut v = Vec::new();
v.push(5);
v.push(6);
v.push(7); // v şimdi [5, 6, 7] oldu
3. Veriye Erişme: İndis mi, .get() mi?
Vektör elemanlarına erişirken Rust bize iki seçenek sunar. Aralarındaki fark, hata yönetimi felsefesini yansıtır:- İndis Operatörü (
[]): Eğer verdiğiniz indis vektörün dışındaysa program panic! yapar (çöker). Kesin eminseniz kullanın. .get()Metodu: Geriye birOption<&T>döndürür. İndis dışındaysaNonedöner, çökme olmaz.
Kod:
let v = vec![1, 2, 3, 4, 5];
// 1. Yöntem: Panik riski taşır
let ucuncu = &v[2];
// 2. Yöntem: Güvenli (Hata yönetimi yapılabilir)
match v.get(2) {
Some(deger) => println!("Üçüncü eleman: {}", deger),
None => println!("Eleman bulunamadı."),
}
4. Vektör Üzerinde Gezinme (Iterating)
Vektördeki her bir elemanı işlemek içinfor döngüsü kullanılır. Eğer elemanları değiştirmek istiyorsanız mutable referans (&mut) kullanmalısınız.Rust
Kod:
let mut v = vec![10, 20, 30];
for i in &mut v {
*i += 50; // Dereference (*) ile değeri güncelliyoruz
}
// v artık [60, 70, 80]
5. Kapasite (Capacity) ve Uzunluk (Length)
Vektörlerin arkasında bir Kapasite yönetimi vardır. Vektör dolduğunda, Rust bellekte daha büyük bir yer ayırır ve verileri oraya taşır. Bu taşıma işlemi maliyetli olduğu için, kaç eleman ekleyeceğinizi önceden biliyorsanızVec::with_capacity(n) kullanarak performansı artırabilirsiniz.Özet: Dizi mi, Vektör mü?
| Özellik | Array (Dizi) | Vector (Vektör) |
| Boyut | Sabit (Derleme zamanı) | Dinamik (Çalışma zamanı) |
| Bellek | Stack (Genellikle) | Heap |
| Hız | Çok hızlı (Sıfır ek yük) | Hızlı (Küçük bir yönetim yükü) |
| Kullanım | Boyut hiç değişmeyecekse | Liste uzunluğu belirsizse |