Iterando com um Loop For
Parte da seção Lógica & Fluxo do Journey de C++ da Coddy. Lição 14 de 56.
Agora que você sabe como acessar elementos individuais e verificar o tamanho de um vector, vamos aprender a processar todos os elementos sistematicamente usando um traditional for loop. Essa abordagem combina o método .size() com o acesso baseado em índice para visitar each elemento em sequência.
Um loop for tradicional usa uma variável de índice que começa em 0 e é incrementada até alcançar o tamanho do vector:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}Neste exemplo, a condição do loop i < names.size() garante que não ultrapassemos os limites do vector, enquanto names[i] acessa cada elemento usando o índice atual. O loop imprimirá cada nome em uma linha separada.
Esse padrão é fundamental para processar coleções de dados. A variável de índice i oferece controle preciso sobre qual elemento você está manipulando, sendo útil quando você precisa saber a posição de cada elemento ou quando deseja modificar elementos durante a iteração.
Observe que, após o loop terminar, i é igual a names.size() — neste caso, 3 — porque o loop para assim que a condição i < names.size() se torna falsa.
Desafio
FácilCreate um programa que use um traditional for loop para iterate through um vector de nomes de product e exibi-los em um formato de lista numerada.
As seguintes entradas serão fornecidas:
- Um inteiro
nrepresentando o number de products - Então
nstrings representando nomes de product
Seu programa deve:
- Create um
std::vector<std::string>chamadoproducts - Usar
push_back()para add cada um dosnnomes de product ao vector - Usar um traditional for loop com uma variável de índice para iterate through o vector
- No loop, usar o método
.size()para a condição do loop - Usar o operador de colchetes
[]para acessar cada elemento pelo índice - Imprimir cada product com seu position number (começando em 1) no formato especificado
Use o seguinte formato exato de saída:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...O for loop deve começar com o índice 0, usar i < products.size() como condição e incrementar i em cada iteração. Ao imprimir, add 1 ao índice para exibir position numbers começando em 1.
Experimente você mesmo
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// Leia o número de produtos
int n;
cin >> n;
// Crie um vetor para armazenar os nomes dos produtos
vector<string> products;
// Leia os nomes dos produtos e adicione-os ao vetor
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: Escreva seu código abaixo
// Use um loop for tradicional para iterar pelo vetor
// e imprima cada produto com seu número de posição
return 0;
}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
1Ponteiros e Memória
O que é um Ponteiro?Operador de EndereçoOperador de DesreferenciaçãoPonteiros NulosPonteiros e ArraysMemória Dinâmica com 'new'Liberando Memória com 'delete'Recapitulação - Prática com Ponteiros2Vetores (Arrays Dinâmicos)
Introdução ao std::vectorCriando um VetorAdicionando ElementosAcessando ElementosTamanho do VetorIterando com um Loop ForLoop For Baseado em IntervaloRemovendo ElementosRecapitulação - Operações com Vetores3Projeto: Ferramenta de Lista de Tarefas
Visão Geral do ProjetoAdicionando uma TarefaPratique por conta própria: Compilador de C++ online