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 usando un bucle for tradicional. Este enfoque combina el método .size() con el acceso basado en índices para visitar cada elemento en secuencia.
Un bucle for traditional usa una variable de índice que comienza en 0 y se incrementa hasta alcanzar el tamaño del 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 vayamos más allá de los límites del vector, mientras que names[i] accede a cada elemento utilizando el índice actual. El bucle ejecutará print cada nombre en una línea separada.
Este patrón es fundamental para procesar colecciones de datos. La variable de índice i te proporciona 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 bucle, i es igual a names.size(), en este caso, 3, porque el bucle 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 product names 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 product names
Tu programa debe:
- Create un
std::vector<std::string>llamadoproducts - Usar
push_back()para add cada uno de losnproduct names al vector - Usar un traditional for loop con una variable í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 por í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, add 1 al índice para mostrar 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