Comment imprimer un tableau en C++

Jinku Hu 12 octobre 2023
  1. Utiliser une boucle à base de gamme pour imprimer un tableau
  2. Utilisation de l’algorithme de copy pour imprimer un tableau
  3. Utiliser l’algorithme for_each pour imprimer un tableau
Comment imprimer un tableau en C++

Cet article présente les méthodes C++ permettant d’imprimer les éléments d’un tableau à la console.

Utiliser une boucle à base de gamme pour imprimer un tableau

Cette méthode est une boucle for typique uniquement avec un style moderne basé sur la gamme C++11. L’itération basée sur la plage fournit une option pour accéder aux éléments avec des spécificateurs personnalisés comme : par référence de const (auto const& i), par valeur (auto i), ou par référence de transfert (auto&& i). Les avantages de cette méthode par rapport à la boucle for traditionnelle sont la facilité d’utilisation et la lisibilité.

#include <iostream>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

int main() {
  vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  for (auto const& value : arr) cout << value << "; ";
  cout << endl;

  return EXIT_SUCCESS;
}

Production:

1; 2; 3; 4; 5; 6; 7; 8; 9; 10;

Utilisation de l’algorithme de copy pour imprimer un tableau

La méthode de copie est implémentée dans la bibliothèque STL <algorithm> et offre un outil puissant pour les opérations à distance. La méthode copy prend les itérateurs de début et de fin de la gamme comme les deux premiers paramètres. Dans ce cas, nous passons un itérateur de flux de sortie comme troisième argument pour sortir des éléments de tableau vers la console.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

int main() {
  vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  copy(arr.begin(), arr.end(), std::ostream_iterator<int>(cout, "; "));
  cout << endl;

  return EXIT_SUCCESS;
}

Production:

1; 2; 3; 4; 5; 6; 7; 8; 9; 10;

Comme alternative, nous pouvons facilement réimplémenter l’exemple ci-dessus pour sortir les éléments du tableau dans l’ordre inverse. Pour cela, nous modifions les deux premiers arguments de la méthode “copy” et les remplaçons par des appels de fonction rbegin/rend.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

int main() {
  vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  copy(arr.rbegin(), arr.rend(), std::ostream_iterator<int>(cout, "; "));
  cout << endl;

  return EXIT_SUCCESS;
}

Production:

10; 9; 8; 7; 6; 5; 4; 3; 2; 1;

Utiliser l’algorithme for_each pour imprimer un tableau

for_each est un autre algorithme puissant de la bibliothèque STL. Il peut appliquer l’objet de fonction donné à chaque élément de la gamme. Dans ce cas, nous définissons une expression lambda comme une variable custom_func et nous la passons à la méthode for_each pour opérer sur les éléments du tableau donné.

#include <iostream>
#include <iterator>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

int main() {
  vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  auto custom_func = [](auto &i) { cout << i << "; "; };
  for_each(arr.begin(), arr.end(), custom_func);
  cout << endl;

  return EXIT_SUCCESS;
}

Production:

1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
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