Cómo hacer un bucle sobre un array en C++

Jinku Hu 12 octubre 2023
  1. Usar el for Loop para iterar sobre un array
  2. Usar el bucle basado en el rango para iterar sobre un array
  3. Usar el algoritmo std::for_each para iterar sobre un array
Cómo hacer un bucle sobre un array en C++

Este artículo explicará cómo iterar sobre un array usando diferentes métodos en C++.

Usar el for Loop para iterar sobre un array

El método aparente para iterar sobre los elementos del array es un bucle for. Consiste en una declaración de tres partes, cada una separada por comas. Primero, debemos inicializar la variable del contador - i, que se ejecuta una sola vez por diseño. La siguiente parte declara una condición que será evaluada en cada iteración, y si se devuelve la falsa, el bucle deja de funcionar. En este caso, comparamos el contador y el tamaño del array. La última parte incrementa el contador, y también se ejecuta en cada bucle del bucle.

#include <array>
#include <iostream>

using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  array<string, 10> str_arr = {"Albatross", "Auklet", "Bluebird", "Blackbird",
                               "Cowbird",   "Dove",   "Duck",     "Godwit",
                               "Gull",      "Hawk"};

  for (size_t i = 0; i < str_arr.size(); ++i) {
    cout << str_arr[i] << " - ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Resultado:

Albatross - Auklet - Bluebird - Blackbird - Cowbird - Dove - Duck - Godwit - Gull - Hawk -

Usar el bucle basado en el rango para iterar sobre un array

El bucle basado en el rango es la versión legible del tradicional bucle for. Este método es una alternativa poderosa ya que ofrece una fácil iteración sobre contenedores complicados y aún así mantiene la flexibilidad para acceder a cada elemento. El siguiente ejemplo de código es la reimplementación exacta del ejemplo anterior:

#include <array>
#include <iostream>

using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  array<string, 10> str_arr = {"Albatross", "Auklet", "Bluebird", "Blackbird",
                               "Cowbird",   "Dove",   "Duck",     "Godwit",
                               "Gull",      "Hawk"};

  for (auto &item : str_arr) {
    cout << item << " - ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Usar el algoritmo std::for_each para iterar sobre un array

for_each es un poderoso algoritmo STL para operar en elementos de rango y aplicar funciones definidas a medida. Toma el inicio del rango y los últimos objetos iteradores como los dos primeros parámetros, y el objeto de la función como el tercero. En este caso, declaramos un objeto de función como expresión lambda, que envía directamente los resultados calculados a la consola. Por último, podemos pasar la variable custom_func como argumento al método for_each para operar sobre los elementos del array.

#include <array>
#include <iostream>

using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::string;

int main() {
  array<int, 10> int_arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  auto custom_func = [](auto &i) { cout << i * (i + i) << "; "; };
  ;

  for_each(int_arr.begin(), int_arr.end(), custom_func);
  cout << endl;

  return EXIT_SUCCESS;
}

Resultado:

2; 8; 18; 32; 50; 72; 98; 128; 162; 200;
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - C++ Array