C++ Academy · Aula

Percorrer vetores: índice, range-for e iteradores

Percorra um vetor com acesso por índice, range-for e iteradores explícitos

Aula 2 de 413 etapas

Percorrer vetores: índice, range-for e iteradores é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 2 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 C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

Três maneiras de percorrer

Você pode percorrer um vetor com:

  • for baseado em índice for (size_t i = 0; i < v.size(); ++i)
  • for baseado em intervalo for (auto& x : v)
  • Iteradores for (auto it = v.begin(); it != v.end(); ++it)

Laço baseado em índice

Familiar da linguagem C. É útil quando você precisa do índice junto do valor.

for (size_t i = 0; i < v.size(); ++i) {
    std::cout << i << ": " << v[i] << "\n";
}

size_t versus int

size() retorna size_t — um tipo sem sinal. Misturá-lo com um contador int com sinal causa avisos do compilador e erros sutis. Use size_t ou std::ssize do C++20.

for baseado em intervalo

É a forma mais clara quando você não precisa dos índices. Escolha o qualificador de referência correto.

for (const auto& x : v) std::cout << x << " ";   // read only
for (auto& x : v) x *= 2;                          // modify in place

Iteradores

Um iterador é um ponteiro generalizado. v.begin() aponta para o primeiro elemento; v.end(), para a posição imediatamente após o último.

for (auto it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " ";
}

const_iterator

Use cbegin() e cend() quando não precisar modificar os elementos — o tipo do iterador será const_iterator.

Iteradores reversos

rbegin() e rend() percorrem do final para o início. A desreferenciação produz os mesmos elementos, mas na ordem inversa.

for (auto it = v.rbegin(); it != v.rend(); ++it) {
    std::cout << *it << " ";
}

Aritmética de iteradores

Os iteradores de vetores têm acesso aleatório: você pode somar e subtrair inteiros e compará-los usando <.

auto it = v.begin();
it += 3;          // skip 3 elements
std::cout << *it;

Os algoritmos usam iteradores

Os algoritmos da STL recebem pares de iteradores. Passe v.begin(), v.end() para algoritmos como std::sort ou std::find.

#include <algorithm>
std::sort(v.begin(), v.end());
auto it = std::find(v.begin(), v.end(), 42);

Quando os iteradores deixam de ser válidos

Adicionar elementos a um vetor pode causar realocação. Todos os iteradores, ponteiros e referências para o vetor deixam de ser válidos após qualquer operação que altere a capacidade.

Armadilha: modificar durante a iteração

Nunca chame push_back ou erase durante um for baseado em intervalo sobre o mesmo vetor. Crie um novo vetor ou armazene os índices para agir sobre eles depois.

Verificação rápida

Qual forma de iteração invalida seu iterador se push_back causar uma realocação?

Recapitulação

Escolha o for baseado em intervalo quando não precisar dos índices, o baseado em índice quando precisar deles e o baseado em iteradores ao trabalhar com algoritmos. A realocação invalida os iteradores — nunca chame push_back durante a iteração.

Grátis para começar

Aprenda C++ com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
51
Aulas
203

Perguntas Frequentes

A aula “Percorrer vetores: índice, range-for e iteradores” é grátis?

Sim — o texto completo de “Percorrer vetores: índice, range-for e iteradores” é 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 C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Percorrer vetores: índice, range-for e iteradores”?

Percorra um vetor com acesso por índice, range-for e iteradores explícitos Você pratica C++ Academy 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 C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy 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 2 de 4.

Quanto tempo leva a aula “Percorrer vetores: índice, range-for e iteradores”?

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 C++ Academy?

Sim. Cada aula de C++ Academy 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. Noções básicas de std::vector: push_back, size, capacity
  2. Percorrer vetores: índice, range-for e iteradores
  3. Modificar vetores: insert, erase, clear
  4. Vector versus std::array versus matriz em C
← Voltar para C++ Academy