0Pricing
Learn Rust Coding · Aula

Aumentando e diminuindo

Insira, remova e redimensione.

Aumentando e diminuindo é uma aula grátis de Learn Rust Coding no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn Rust Coding, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn Rust Coding inclui 4 aulas no total.

Vetores podem mudar de tamanho

Uma característica importante dos vetores é que eles mudam de tamanho durante a execução. Você pode adicionar elementos quando tiver mais dados e removê-los quando não precisar mais deles.

Toda alteração de tamanho exige que o vetor seja declarado como mut.

Aumentando com push

O método push adiciona um único elemento ao final, aumentando o vetor em um elemento. Essa é a maneira mais comum de aumentá-lo.

Aqui, o vetor cresce do comprimento 0 para o comprimento 3.

fn main() {
    let mut v = Vec::new();
    v.push("a");
    v.push("b");
    v.push("c");
    println!("len = {}", v.len());
}

Removendo com pop

O método pop remove e retorna o último elemento envolvido em um Option. Normalmente, você obtém Some(value), ou None se o vetor já estiver vazio.

Isso diminui o vetor em um elemento.

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

Inserindo no meio

O método insert coloca um valor em um índice específico e desloca os elementos seguintes para a direita. O índice deve estar entre 0 e o comprimento atual.

Aqui inserimos 99 na posição 1.

fn main() {
    let mut v = vec![10, 20, 30];
    v.insert(1, 99);
    println!("{:?}", v);
}

Removendo por índice

O método remove exclui o elemento de um índice, retorna esse elemento e desloca os elementos seguintes para a esquerda, preenchendo o espaço vazio.

Atenção: remover um índice que não existe causa um pânico.

fn main() {
    let mut v = vec![10, 20, 30];
    let gone = v.remove(0);
    println!("removed {}", gone);
    println!("{:?}", v);
}

Remoção rápida com swap_remove

Quando a ordem não importa, swap_remove é mais rápido. Ele move o último elemento para a posição removida, em vez de deslocar todos os elementos.

Isso altera a ordem, mas evita o custo do deslocamento.

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

Removendo tudo

O método clear remove todos os elementos de uma só vez, deixando um vetor vazio com comprimento 0. O vetor mantém sua capacidade alocada para reutilização.

Ele é útil quando você quer preencher um vetor novamente do zero.

fn main() {
    let mut v = vec![1, 2, 3];
    v.clear();
    println!("empty? {}", v.is_empty());
}

Reduzindo para um comprimento

O método truncate reduz um vetor ao comprimento escolhido, descartando os elementos extras no final. Se o vetor já for menor, nada acontece.

Aqui mantemos apenas os dois primeiros elementos.

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

Combinando com extend

O método extend acrescenta todos os itens de outra coleção. É como chamar push para cada elemento em uma única etapa.

Aqui, uma segunda lista é adicionada ao final da primeira.

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

Mantendo apenas alguns com retain

O método retain mantém apenas os elementos que passam em um teste, removendo os demais no próprio vetor. Você fornece a ele um fechamento que retorna um bool.

Aqui mantemos apenas os números pares.

fn main() {
    let mut v = vec![1, 2, 3, 4, 5, 6];
    v.retain(|n| n % 2 == 0);
    println!("{:?}", v);
}

Ordenando elementos

O método sort reorganiza os elementos do menor para o maior no próprio vetor. Ele não altera o comprimento, apenas a disposição dos elementos.

A ordenação exige que o vetor seja mut.

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

Verificação rápida

Teste sua compreensão sobre como aumentar e diminuir vetores.

Recapitulação

Você aumentou vetores com push, insert e extend, e os diminuiu com pop, remove, swap_remove, clear e truncate.

Você também filtrou com retain e ordenou com sort. A seguir, você aprenderá a armazenar structs dentro de vetores.

Perguntas Frequentes

A aula “Aumentando e diminuindo” é grátis?

Sim — o texto completo de “Aumentando e diminuindo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn Rust Coding, atualize para CoddyKit PRO. O curso de Learn Rust Coding inclui 4 aulas no total.

O que vou aprender em “Aumentando e diminuindo”?

Insira, remova e redimensione. Você pratica Learn Rust Coding com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn Rust Coding?

Nenhuma experiência prévia é necessária. Learn Rust Coding no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Aumentando e diminuindo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn Rust Coding?

Sim. Cada aula de Learn Rust Coding inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criando e preenchendo vetores
  2. Indexação e iteração
  3. Aumentando e diminuindo
  4. Vetores de structs
← Voltar para Learn Rust Coding