AnyCompiler

Vectors

Ek Vec<T> same type ki values ki ek growable list hai, jo heap par allocate hoti hai. vec! macro initial values ke sath ek banane ka usual tarika hai.

fn main() {
    let numbers = vec![1, 2, 3, 4, 5];
    println!("{:?}", numbers);

    let sum: i32 = numbers.iter().sum();
    println!("sum = {}", sum);
}
Output
[1, 2, 3, 4, 5]
sum = 15

Ek vector ko grow aur shrink karna

push ek item ko aakhir mein add karta hai; remove index se ek item ko bahar nikalta hai aur use return karta hai, uske baad ki har cheez ko neeche shift karte hue. Dono ke liye vector ka khud mutable hona zaroori hai.

fn main() {
    let mut fruits = vec!["apple", "banana", "cherry"];
    fruits.push("date");
    println!("{:?}", fruits);

    let first = fruits.remove(0);
    println!("removed: {}", first);
    println!("{:?}", fruits);
}
Output
["apple", "banana", "cherry", "date"]
removed: apple
["banana", "cherry", "date"]

Aage: iterators aur closures — ek manual loop likhe bina collection ko transform karna.

Practice Exercise

Ek vector numbers: Vec<i32> = vec![4, 8, 15, 16] diya gaya hai, .iter().max() use karke sabse badi value dhoondo aur use print karo (yeh ek Option<&i32> return karta hai, isliye use unwrap karo).