Iterar con un bucle For
Parte de la sección Lógica y Flujo del Journey de C++ de Coddy. Lección 14 de 56.
Ahora que sabes cómo acceder a elementos individuales y comprobar el tamaño de un vector, aprendamos a procesar cada elemento sistemáticamente using un bucle for traditional. Este enfoque combina el método .size() con el acceso basado en índices para visitar cada elemento en secuencia.
Un bucle for traditional utiliza una variable de índice que comienza en 0 y se incrementa hasta alcanzar el tamaño de vector:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}En este ejemplo, la condición del bucle i < names.size() garantiza que no superemos los límites de vector, mientras que names[i] accede a cada elemento usando el índice actual. El bucle imprimirá cada nombre en una línea separada.
Este patrón es fundamental para procesar colecciones de datos. La variable de índice i te brinda un control preciso sobre el elemento con el que estás trabajando, lo que resulta útil cuando necesitas conocer la posición de cada elemento o cuando quieres modificar elementos durante la iteración.
Ten en cuenta que después de que finaliza el loop, i es igual a names.size() — en este caso, 3 — porque el loop se detiene en cuanto la condición i < names.size() se vuelve falsa.
Desafío
FácilCreate un programa que use un traditional for loop para iterate through un vector de nombres de products y los muestre en un formato de lista numerada.
Se proporcionarán las siguientes entradas:
- Un entero
nque representa el number de products - Después,
nstrings que representan nombres de products
Tu programa debe:
- Create un
std::vector<std::string>llamadoproducts - Usar
push_back()para add cada uno de losnnombres de products al vector - Usar un traditional for loop con una variable de índice para iterate through el vector
- En el loop, usar el método
.size()para la condición del loop - Usar el operador de corchetes
[]para acceder a cada elemento mediante su índice - Imprimir cada product con su position number (comenzando desde 1) en el formato especificado
Usa el siguiente formato de salida exacto:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...El for loop debe comenzar con el índice 0, usar i < products.size() como condición e incrementar i en cada iteración. Al imprimir, suma 1 al índice para mostrar los position numbers comenzando desde 1.
Pruébalo tú mismo
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// Lee el número de productos
int n;
cin >> n;
// Crea un vector para almacenar los nombres de los productos
vector<string> products;
// Lee los nombres de los productos y añádelos al vector
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: Escribe tu código debajo
// Usa un bucle for tradicional para iterar a través del vector
// e imprime cada producto con su número de posición
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Punteros y memoria
¿Qué es un puntero?Operador de direcciónOperador de desreferenciaPunteros nulosPunteros y arraysMemoria dinámica con 'new'Liberar memoria con 'delete'Resumen: Práctica de punteros2Vectores (Arrays dinámicos)
Introducción a std::vectorCreación de un VectorAgregar elementosAcceder a los elementosTamaño del VectorIterar con un bucle ForBucle For basado en rangosEliminar elementosResumen - Operaciones con Vectores5Proyecto: Herramienta de inventario
Configuración del proyectoAgregar y actualizar artículos3Proyecto: Herramienta de lista de tareas
Descripción general del proyectoAñadir una tareaPractica por tu cuenta: Compilador de C++ online