Els vectors són una de les col·leccions més utilitzades en Rust. Són similars a les llistes en altres llenguatges de programació, però amb algunes diferències clau. En aquest tema, aprendrem què són els vectors, com crear-los, com manipular-los i com utilitzar-los de manera eficient.

Què és un Vector?

Un vector és una col·lecció que pot emmagatzemar múltiples valors del mateix tipus en un ordre específic. Els vectors són dinàmics, el que significa que poden canviar de mida durant l'execució del programa.

Creació de Vectors

Vector Buit

let mut v: Vec<i32> = Vec::new();

Vector amb Valors Inicials

let v = vec![1, 2, 3, 4, 5];

Afegir Elements a un Vector

Afegir un Element

let mut v = Vec::new();
v.push(5);
v.push(6);
v.push(7);
v.push(8);

Accedir als Elements d'un Vector

Accés per Índex

let v = vec![1, 2, 3, 4, 5];
let third: &i32 = &v[2];
println!("El tercer element és {}", third);

Mètode get

let v = vec![1, 2, 3, 4, 5];
match v.get(2) {
    Some(third) => println!("El tercer element és {}", third),
    None => println!("No hi ha tercer element."),
}

Iterar sobre un Vector

Iterar amb for

let v = vec![100, 32, 57];
for i in &v {
    println!("{}", i);
}

Iterar i Modificar

let mut v = vec![100, 32, 57];
for i in &mut v {
    *i += 50;
}

Eliminar Elements d'un Vector

Eliminar l'Últim Element

let mut v = vec![1, 2, 3, 4, 5];
v.pop();

Eliminar per Índex

let mut v = vec![1, 2, 3, 4, 5];
v.remove(1);

Exercicis Pràctics

Exercici 1: Crear i Manipular un Vector

Descripció: Crea un vector buit de tipus i32. Afegeix els números del 1 al 10 al vector. Després, elimina el cinquè element i imprimeix el vector resultant.

Solució:

fn main() {
    let mut v: Vec<i32> = Vec::new();
    for i in 1..=10 {
        v.push(i);
    }
    v.remove(4);
    println!("{:?}", v);
}

Exercici 2: Accedir i Modificar Elements

Descripció: Crea un vector amb els valors [10, 20, 30, 40, 50]. Itera sobre el vector i multiplica cada element per 2. Imprimeix el vector resultant.

Solució:

fn main() {
    let mut v = vec![10, 20, 30, 40, 50];
    for i in &mut v {
        *i *= 2;
    }
    println!("{:?}", v);
}

Errors Comuns

  1. Accés fora de límits: Intentar accedir a un índex que no existeix en el vector pot causar un error de temps d'execució.

    let v = vec![1, 2, 3];
    let does_not_exist = &v[100]; // Això causarà un pànic
    
  2. Mutabilitat: Intentar modificar un vector immutable.

    let v = vec![1, 2, 3];
    v.push(4); // Això causarà un error de compilació
    

Resum

En aquest tema, hem après què són els vectors, com crear-los, afegir i eliminar elements, accedir als elements i iterar sobre ells. També hem vist alguns errors comuns que es poden cometre quan es treballa amb vectors. Els vectors són una eina poderosa i flexible en Rust, i comprendre com utilitzar-los eficientment és essencial per a qualsevol programador de Rust.

© Copyright 2024. Tots els drets reservats