Menu
CoddyTech

Removendo Elementos

Parte da seção Lógica & Fluxo do Journey de Rust da Coddy. Lição 13 de 66.

Às vezes, você precisa remover elementos de um vetor, não apenas adicioná-los. Rust oferece dois métodos principais para remover elementos, cada um projetado para situações diferentes.

O método .pop() remove e retorna o último elemento do vetor:

let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // remove 40 e retorna Some(40)
// numbers agora é [10, 20, 30]

Observe que .pop() retorna um Option — ele fornece Some(value) se havia um elemento para remover, ou None se o vetor já estava vazio. Isso torna seguro usá-lo até mesmo em vetores vazios.

O método .remove() remove um elemento em um índice específico e retorna esse elemento:

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

Quando você usa .remove(), todos os elementos após o índice removido se deslocam para a esquerda para preencher o espaço. Essa operação pode ser mais lenta em vetores grandes quando a remoção é feita no início ou no meio, pois muitos elementos precisam ser movidos.

Ambos os métodos exigem que o vetor seja mutável, pois modificam seu conteúdo. Escolha .pop() quando quiser remover um elemento do final e .remove() quando precisar remover um elemento de uma posição específica.

challenge icon

Desafio

Fácil

Você receberá duas entradas: primeiro, uma lista de números separados por vírgulas e, segundo, um índice a ser removido. O código inicial já lê as duas entradas e transforma os números em um vetor mutável numbers. Remova o elemento no índice especificado e imprima os elementos restantes em linhas separadas.

Requisitos:

  • Converta a segunda entrada (index_input) em um inteiro que represente o índice
  • Use .remove() para remover o elemento nesse índice
  • Imprima cada elemento restante em uma linha separada

Entrada:

  • Primeira linha: inteiros separados por vírgulas (por exemplo, 10,20,30,40,50)
  • Segunda linha: um inteiro que representa o índice a ser removido

Saída: Imprima cada elemento restante do vetor em uma linha separada

Experimente você mesmo

use std::io;

fn main() {
    // Leia os números separados por vírgulas
    let mut numbers_input = String::new();
    io::stdin().read_line(&mut numbers_input).expect("Failed to read line");
    
    // Leia o índice do elemento a remover
    let mut index_input = String::new();
    io::stdin().read_line(&mut index_input).expect("Failed to read line");
    
    // Transforma "10,20,30" em um vetor: separa pelas vírgulas, converte cada parte em um número e reúne os resultados em um Vec
    let mut numbers: Vec<i32> = numbers_input
        .trim()
        .split(',')
        .map(|s| s.trim().parse().unwrap())
        .collect();
    
    // TODO: Escreva seu código abaixo
    // 1. Converta index_input em um número inteiro
    // 2. Remova o elemento no índice especificado
    // 3. Imprima cada elemento restante em uma linha separada
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de Rust online