Esegui il bucle su un array in C++

Jinku Hu 12 ottobre 2023
  1. Usa il cicli for per eseguire l’iterazione su un array
  2. Usa il bucle basato su intervallo per eseguire l’iterazione su un array
  3. Usa l’algoritmo std::for_each per eseguire l’iterazione su un array
Esegui il bucle su un array in C++

Questo articolo spiegherà come eseguire l’iterazione su un array utilizzando metodi diversi in C++.

Usa il cicli for per eseguire l’iterazione su un array

Il metodo apparente per iterare sugli elementi dell’array è un cicli for. Consiste in un’istruzione in tre parti, ciascuna separata da virgole. Innanzitutto, dovremmo inizializzare la variabile counter - i, che viene eseguita solo una volta in base alla progettazione. La parte successiva dichiara una condizione che verrà valutata ad ogni iterazione e, se viene restituito il falso, il bucle smette di funzionare. In questo caso, confrontiamo il contatore e la dimensione dell’array. L’ultima parte incrementa il contatore e viene eseguita anche ad ogni bucle di loop.

#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;
}

Produzione:

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

Usa il bucle basato su intervallo per eseguire l’iterazione su un array

Il bucle basato sulla gamma è la versione leggibile del tradizionale cicli for. Questo metodo è una potente alternativa in quanto offre una facile iterazione su contenitori complicati e mantiene comunque la flessibilità per l’accesso a ciascun elemento. Il seguente codice di esempio è la reimplementazione esatta dell’esempio precedente:

#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;
}

Usa l’algoritmo std::for_each per eseguire l’iterazione su un array

for_each è un potente algoritmo STL per operare su elementi di intervallo e applicare funzioni definite personalizzate. Prende gli oggetti inizio intervallo e ultimo iteratore come primi due parametri e l’oggetto funzione come terzo. In questo caso, dichiariamo un oggetto funzione come espressione lambda, che restituisce direttamente i risultati calcolati alla console. Infine, possiamo passare la variabile custom_func come argomento al metodo for_each per operare sugli elementi dell’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;
}

Produzione:

2; 8; 18; 32; 50; 72; 98; 128; 162; 200;
Autore: 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

Articolo correlato - C++ Array