typestar

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

  1. for (char c : text) visita cada carácter de la cadena por valor.
  2. for (const auto &value : values) toma prestado cada elemento en vez de copiarlo.
  3. Ambos bucles solo acumulan; los límites del propio contenedor terminan la iteración.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Control de flujo; paso 5 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →