Wie drucke ich ein Array in C++
- Verwenden einer bereichsbasierten Schleife zum Drucken eines Arrays
-
Verwenden Sie die Funktion
copy
, um ein Array auszudrucken -
Verwenden Sie den Algorithmus
for_each
, um ein Array auszugeben
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;
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