Menu
Coddy logo textTech

Eliminar elementos

Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 13 de 66.

A veces necesitas eliminar elementos de un vector, no solo añadirlos. Rust proporciona dos métodos principales para eliminar elementos, cada uno diseñado para situaciones diferentes.

El método .pop() elimina y devuelve el último elemento del vector:

let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // elimina 40, devuelve Some(40)
// numbers es ahora [10, 20, 30]

Ten en cuenta que .pop() devuelve un Option; te devuelve Some(value) si había un elemento para eliminar, o None si el vector ya estaba vacío. Esto hace que sea seguro de usar incluso en vectores vacíos.

El método .remove() elimina un elemento en un índice específico y devuelve ese elemento:

let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // elimina "banana"
// fruits es ahora ["apple", "cherry"]

Cuando usas .remove(), todos los elementos después del índice eliminado se desplazan a la izquierda para llenar el hueco. Esta operación puede ser más lenta para vectores grandes cuando se elimina desde el principio o el medio, ya que muchos elementos deben ser movidos.

Ambos métodos requieren que el vector sea mutable, ya que modifican su contenido. Elige .pop() cuando quieras eliminar desde el final, y .remove() cuando necesites eliminar desde una posición específica.

challenge icon

Desafío

Fácil

Recibirás dos entradas: primero, una lista de números separados por comas, y segundo, un índice a eliminar. Lee ambas entradas, crea un vector a partir de los números, elimina el elemento en el índice especificado y imprime los elementos restantes en líneas separadas.

Requerimientos:

  • Lee la primera entrada que contiene números separados por comas (por ejemplo, 10,20,30,40,50)
  • Divide la cadena por comas y convierte cada número en un entero
  • Crea un vector mutable a partir de estos números
  • Lee la segunda entrada y conviértela en un entero que represente el índice
  • Usa .remove() para eliminar el elemento en ese índice
  • Imprime cada elemento restante en una línea separada

Entrada:

  • Primera línea: Enteros separados por comas (por ejemplo, 10,20,30,40,50)
  • Segunda línea: Un entero que representa el índice a eliminar

Salida: Imprime cada elemento restante del vector en una línea separada

Pruébalo tú mismo

use std::io;

fn main() {
    // Leer los números separados por comas
    let mut numbers_input = String::new();
    io::stdin().read_line(&mut numbers_input).expect("Failed to read line");
    
    // Leer el índice a eliminar
    let mut index_input = String::new();
    io::stdin().read_line(&mut index_input).expect("Failed to read line");
    
    // TODO: Escribe tu código abajo
    // 1. Dividir numbers_input por comas y convertir a enteros
    // 2. Crear un vector mutable a partir de estos números
    // 3. Convertir index_input a un entero
    // 4. Eliminar el elemento en el índice especificado
    // 5. Imprimir cada elemento restante en una línea separada
    
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Logic & Flow