Comment boucler un tableau en C++
-
Utiliser une boucle
for
pour itérer sur un tableau - Utilisation de la boucle basée sur la portée pour itérer sur un tableau
-
Utiliser l’algorithme
std::for_each
pour itérer sur un tableau
Cet article explique comment itérer sur un tableau en utilisant différentes méthodes en C++.
Utiliser une boucle for
pour itérer sur un tableau
La méthode apparente d’itération sur des éléments de tableau est une boucle for
. Elle consiste en une instruction en trois parties, chacune étant séparée par une virgule. Tout d’abord, nous devons initialiser la variable compteur - i
, qui n’est exécutée qu’une seule fois par conception. La partie suivante déclare une condition qui sera évaluée à chaque itération, et si le faux est renvoyé, la boucle s’arrête de fonctionner. Dans ce cas, nous comparons le compteur et la taille du tableau. La dernière partie incrémente le compteur, et elle est également exécutée à chaque cycle de la boucle.
#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;
}
Production:
Albatross - Auklet - Bluebird - Blackbird - Cowbird - Dove - Duck - Godwit - Gull - Hawk -
Utilisation de la boucle basée sur la portée pour itérer sur un tableau
La boucle basée sur la portée est la version lisible de la boucle for
traditionnelle. Cette méthode est une alternative puissante car elle offre une itération facile sur des conteneurs compliqués tout en conservant la flexibilité d’accès à chaque élément. L’exemple de code suivant est la réimplémentation exacte de l’exemple précédent:
#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;
}
Utiliser l’algorithme std::for_each
pour itérer sur un tableau
for_each
est un puissant algorithme STL qui permet d’opérer sur des éléments de gamme et d’appliquer des fonctions définies sur mesure. Il prend les objets de début de plage et de dernier itérateur comme les deux premiers paramètres, et l’objet fonction comme le troisième. Dans ce cas, nous déclarons un objet de fonction comme expression lambda
, qui fournit directement les résultats calculés à la console. Enfin, nous pouvons passer la variable custom_func
comme argument à la méthode for_each
pour opérer sur des éléments de tableau.
#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;
}
Production:
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