El for de rangos en C++
El bucle que recorre un contenedor completo sin índice, sin iterador y sin el clásico error de uno.
#include <string>
#include <vector>
int count_spaces(const std::string &text) {
int spaces = 0;
for (char c : text) {
if (c == ' ') {
spaces++;
}
}
return spaces;
}
int sum(const std::vector<int> &values) {
int total = 0;
for (const auto &value : values) {
total += value;
}
return total;
}
Cómo funciona
for (char c : text)visita cada carácter de la cadena por valor.for (const auto &value : values)toma prestado cada elemento en vez de copiarlo.- Ambos bucles solo acumulan; los límites del propio contenedor terminan la iteración.
Palabras clave y builtins usados aquí
autocharconstforifintreturn
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 292
- Tokens
- 90
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 68 segundos.
Paso 2 de 3 en Control de flujo; paso 5 de 27 en Fundamentos del lenguaje.