Los vectores en Rust son una colección dinámica que puede crecer y reducir su tamaño. Son similares a los arrays, pero con la ventaja de que su tamaño no es fijo. En esta sección, aprenderemos cómo crear, manipular y utilizar vectores en Rust.

  1. Creación de Vectores

1.1. Creación Vacía

Puedes crear un vector vacío y luego agregarle elementos.

fn main() {
    let mut vec: Vec<i32> = Vec::new();
    vec.push(1);
    vec.push(2);
    vec.push(3);
    println!("{:?}", vec);
}

1.2. Creación con Valores Iniciales

También puedes crear un vector con valores iniciales usando el macro vec!.

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

  1. Acceso a Elementos

2.1. Acceso por Índice

Puedes acceder a los elementos de un vector usando índices, similar a los arrays.

fn main() {
    let vec = vec![1, 2, 3];
    let first = vec[0];
    println!("El primer elemento es: {}", first);
}

2.2. Método get

El método get devuelve una opción (Option) que puede ser Some si el índice es válido o None si no lo es.

fn main() {
    let vec = vec![1, 2, 3];
    match vec.get(2) {
        Some(third) => println!("El tercer elemento es: {}", third),
        None => println!("No hay tercer elemento."),
    }
}

  1. Iteración sobre Vectores

3.1. Iteración Inmutable

Puedes iterar sobre los elementos de un vector sin modificarlo.

fn main() {
    let vec = vec![1, 2, 3];
    for i in &vec {
        println!("{}", i);
    }
}

3.2. Iteración Mutable

También puedes iterar sobre los elementos de un vector y modificarlos.

fn main() {
    let mut vec = vec![1, 2, 3];
    for i in &mut vec {
        *i += 50;
    }
    println!("{:?}", vec);
}

  1. Métodos Comunes

4.1. push

Agrega un elemento al final del vector.

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

4.2. pop

Elimina y devuelve el último elemento del vector, si existe.

fn main() {
    let mut vec = vec![1, 2, 3];
    let last = vec.pop();
    println!("{:?}, {:?}", vec, last);
}

4.3. len

Devuelve el número de elementos en el vector.

fn main() {
    let vec = vec![1, 2, 3];
    println!("El vector tiene {} elementos.", vec.len());
}

4.4. is_empty

Verifica si el vector está vacío.

fn main() {
    let vec: Vec<i32> = Vec::new();
    println!("¿El vector está vacío? {}", vec.is_empty());
}

  1. Ejercicios Prácticos

Ejercicio 1: Creación y Manipulación de Vectores

Crea un vector de números enteros, agrega algunos elementos, elimina el último y luego imprime el vector.

fn main() {
    let mut vec = Vec::new();
    vec.push(10);
    vec.push(20);
    vec.push(30);
    vec.pop();
    println!("{:?}", vec);
}

Ejercicio 2: Iteración y Modificación

Crea un vector de números enteros, itera sobre él y multiplica cada elemento por 2.

fn main() {
    let mut vec = vec![1, 2, 3, 4, 5];
    for i in &mut vec {
        *i *= 2;
    }
    println!("{:?}", vec);
}

Ejercicio 3: Acceso Seguro

Crea un vector de números enteros y accede al tercer elemento de manera segura.

fn main() {
    let vec = vec![1, 2, 3, 4, 5];
    match vec.get(2) {
        Some(third) => println!("El tercer elemento es: {}", third),
        None => println!("No hay tercer elemento."),
    }
}

Conclusión

En esta sección, hemos aprendido cómo crear y manipular vectores en Rust. Los vectores son una herramienta poderosa para trabajar con colecciones dinámicas de datos. Hemos cubierto cómo crear vectores, acceder a sus elementos, iterar sobre ellos y utilizar algunos de sus métodos más comunes. Con esta base, estarás preparado para utilizar vectores en tus proyectos de Rust de manera efectiva. En la próxima sección, exploraremos las cadenas en Rust.

© Copyright 2024. Todos los derechos reservados