Menu
Coddy logo textTech

Removendo Elementos

Parte da seção Logic & Flow 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 fornece dois métodos principais para remover elementos, cada um projetado para diferentes situações.

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, retorna Some(40)
// numbers agora é [10, 20, 30]

Observe que .pop() retorna um Option - ele fornece Some(value) se houver um elemento para remover, ou None se o vetor já estiver vazio. Isso torna seu uso seguro 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 a lacuna. Esta operação pode ser mais lenta para vetores grandes ao remover do início ou do meio, já que 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 do final e .remove() quando precisar remover de uma posição específica.

challenge icon

Desafio

Fácil

Você receberá duas entradas: primeiro, uma lista de números separados por vírgula e, segundo, um índice para remover. Leia ambas as entradas, crie um vetor a partir dos números, remova o elemento no índice especificado e imprima os elementos restantes em linhas separadas.

Requisitos:

  • Leia a primeira entrada contendo números separados por vírgula (ex: 10,20,30,40,50)
  • Divida a string por vírgulas e converta cada número em um número inteiro
  • Crie um vetor mutável a partir desses números
  • Leia a segunda entrada e converta-a em um número inteiro representando o índice
  • Use .remove() para remover o elemento naquele índice
  • Imprima cada elemento restante em uma linha separada

Entrada:

  • Primeira linha: Inteiros separados por vírgula (ex: 10,20,30,40,50)
  • Segunda linha: Um número inteiro representando o índice a ser removido

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

Folha de consulta

Rust fornece dois métodos principais para remover elementos de vetores:

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

let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // removes 40, returns Some(40)
// numbers is now [10, 20, 30]

.pop() retorna um tipo Option - Some(value) se um elemento foi removido, ou None se o vetor estava vazio.

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

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

Ao usar .remove(), todos os elementos após o índice removido são deslocados para a esquerda para preencher a lacuna.

Ambos os métodos exigem que o vetor seja mutável. Use .pop() para remover do final e .remove() para remover de uma posição específica.

Experimente você mesmo

use std::io;

fn main() {
    // Leia os números separados por vírgula
    let mut numbers_input = String::new();
    io::stdin().read_line(&mut numbers_input).expect("Failed to read line");
    
    // Leia o índice a ser removido
    let mut index_input = String::new();
    io::stdin().read_line(&mut index_input).expect("Failed to read line");
    
    // TODO: Escreva seu código abaixo
    // 1. Divida o numbers_input por vírgulas e converta para inteiros
    // 2. Crie um vetor mutável a partir desses números
    // 3. Converta index_input para um inteiro
    // 4. Remova o elemento no índice especificado
    // 5. 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 Logic & Flow