Wie drucke ich ein Array in C++

Jinku Hu 12 Oktober 2023
  1. Verwenden einer bereichsbasierten Schleife zum Drucken eines Arrays
  2. Verwenden Sie die Funktion copy, um ein Array auszudrucken
  3. Verwenden Sie den Algorithmus for_each, um ein Array auszugeben
Wie drucke ich ein Array in C++

In diesem Artikel werden C++-Methoden zum Ausdrucken der Elemente eines Arrays auf der Konsole vorgestellt.

Verwenden einer bereichsbasierten Schleife zum Drucken eines Arrays

Bei dieser Methode handelt es sich um eine typische for-Schleife nur mit einem modernen C++11-Bereichsstil. Die bereichsbasierte Iteration bietet eine Möglichkeit, auf Elemente mit benutzerdefinierten Spezifizierern zuzugreifen, wie z. B.: durch Konstitutionsreferenz (auto const& i), durch Wert (auto i) oder durch Weiterleitungsreferenz (auto&& i). Die Vorteile dieser Methode gegenüber der traditionellen for-Schleife liegen in der Benutzerfreundlichkeit und Lesbarkeit.

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

Ausgabe:

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

Verwenden Sie die Funktion copy, um ein Array auszudrucken

Die copy() Funktion ist in der STL <algorithm> Bibliothek implementiert und bietet ein leistungsfähiges Werkzeug für bereichsbasierte Operationen. copy verwendet Start- und Endpunkt-Iteratoren des Bereichs als die ersten beiden Parameter. In diesem Fall übergeben wir einen Ausgabestrom-Iterator als drittes Argument, um Array-Elemente an die Konsole auszugeben.

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

Ausgabe:

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

Als Alternative können wir das obige Beispiel leicht reimplementieren, um die Array-Elemente in umgekehrter Reihenfolge auszugeben. Wir modifizieren die ersten beiden Argumente der copy() Funktion und ersetzen sie durch rbegin/rend Funktionsaufrufe, um dies zu erreichen.

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

Ausgabe:

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

Verwenden Sie den Algorithmus for_each, um ein Array auszugeben

for_each ist ein weiterer leistungsfähiger Algorithmus aus der STL-Bibliothek. Er kann das gegebene Funktionsobjekt auf jedes Element des Bereichs anwenden. In diesem Fall definieren wir einen lambda-Ausdruck als eine custom_func-Variable und übergeben ihn an die for_each-Methode, um mit den gegebenen Array-Elementen zu arbeiten.

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

Ausgabe:

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

Verwandter Artikel - C++ Array