Comment boucler un tableau en C++

Jinku Hu 12 octobre 2023
  1. Utiliser une boucle for pour itérer sur un tableau
  2. Utilisation de la boucle basée sur la portée pour itérer sur un tableau
  3. Utiliser l’algorithme std::for_each pour itérer sur un tableau
Comment boucler un tableau en C++

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;
Auteur: 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

Article connexe - C++ Array