Esegui il bucle su un array in C++
-
Usa il cicli
for
per eseguire l’iterazione su un array - Usa il bucle basato su intervallo per eseguire l’iterazione su un array
-
Usa l’algoritmo
std::for_each
per eseguire l’iterazione su un array
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;
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