En C++ no existe una palabra clave foreach como tal, pero desde C++11 se incorporó una sintaxis que cumple exactamente la misma función: el bucle for basado en rango (range-based for loop).
#include <iostream>
#include <vector>
int main() {
std::vector<int> numeros = {1, 2, 3, 4, 5};
for (int n : numeros) {
std::cout << n << " ";
}
}
Salida:
1 2 3 4 5
Este bucle recorre automáticamente todos los elementos del contenedor (como un std::vector, std::array, std::list, etc.) sin necesidad de usar índices ni iteradores manuales.
Si querés modificar los valores, podés usar una referencia:
for (int& n : numeros) {
n *= 2;
}
Esto duplica cada elemento del vector.
Si no necesitás modificar los elementos, es buena práctica usar const:
for (const int& n : numeros) {
std::cout << n << " ";
}
De esa forma, evitás copias innecesarias y el compilador puede optimizar mejor el código.
En Resumen:
- for (tipo var : contenedor) es la forma moderna y legible de recorrer colecciones en C++.
- Usá referencias si querés modificar los elementos.
- Usá const si solo vas a leerlos.
- Funciona con cualquier contenedor que implemente begin() y end().
