Wie druckt man den Inhalt eines Vektors in C++ aus

  1. Verwenden Sie eine for-Schleife mit Elementzugriffsnotation zum Ausdrucken von Vektorinhalten
  2. Verwenden Sie eine bereichsbasierte Schleife mit Elementzugriffsnotation, um Vektorinhalte auszudrucken
  3. Verwenden Sie std::copy zum Ausdrucken von Vektor-Inhalten
  4. Verwenden Sie std::for_each zum Ausdrucken von Vektor-Inhalten

Dieser Artikel stellt verschiedene Methoden vor, wie Vektorinhalte in C++ ausgedruckt werden können.

Verwenden Sie eine for-Schleife mit Elementzugriffsnotation zum Ausdrucken von Vektorinhalten

Auf Vector-Elemente kann mit der Methode at() oder dem Operator [] zugegriffen werden. In dieser Lösung demonstrieren wir beide und drucken den Inhalt mit dem cout-Stream aus. Zuerst initialisieren wir die Vektorvariable mit beliebigen ganzen Zahlen und schleifen dann durch ihre Elemente einer nach dem anderen, um den Stream auszudrucken.

#include <iostream>
#include <vector>

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

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

    for (size_t i = 0; i < int_vec.size(); ++i) {
        cout << int_vec.at(i) << "; ";
    }
    cout << endl;

    for (size_t i = 0; i < int_vec.size(); ++i) {
        cout << int_vec[i] << "; ";
    }
    cout << endl;

    return EXIT_SUCCESS;
}

Ausgabe:

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

Verwenden Sie eine bereichsbasierte Schleife mit Elementzugriffsnotation, um Vektorinhalte auszudrucken

Die bisherige Lösung ist relativ einfach, sieht aber recht wortreich aus. Zeitgenössisches C++ bietet flexiblere Möglichkeiten, Iterationen auszudrücken, eine davon ist die bereichsbasierte Schleife. Sie gilt als besser lesbar, wenn Schleifen relativ mühelose Operationen durchführen und nicht parallelisiert werden müssen.

#include <iostream>
#include <vector>

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

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

    for (const auto &item : int_vec) {
        cout << item << "; ";
    }
    cout << endl;

    return EXIT_SUCCESS;
}

Verwenden Sie std::copy zum Ausdrucken von Vektor-Inhalten

Eine ziemlich fortgeschrittene Methode, die Vektoriteration und Ausgabeoperationen in einer Anweisung durchzuführen, ist der Aufruf der Funktion copy, die in der <algorithm> Bibliothek definiert ist. Diese Methode nimmt einen mit Iteratoren spezifizierten Vektorbereich, und als drittes Argument übergeben wir ostream_iterator, um den Inhalt des Bereichs in den cout-Strom umzuleiten.

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

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

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

    copy(int_vec.begin(), int_vec.end(), ostream_iterator<int>(cout, "; "));
    cout << endl;

    return EXIT_SUCCESS;
}

Verwenden Sie std::for_each zum Ausdrucken von Vektor-Inhalten

Ein weiterer STL-Algorithmus für die Durchführung der Iteration und Ausgabeoperationen in einer einzigen Anweisung ist for_each. Diese Methode kann ein bestimmtes Funktionsobjekt auf jedes Element des angegebenen Bereichs anwenden, was ein mächtiges Werkzeug ist. In diesem Fall übergeben wir den Ausdruck lambda, der die Elemente in den Ausgabestrom druckt.

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

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

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

    for_each(int_vec.begin(), int_vec.end(),
              [](const int& n) { cout << n << "; "; });
    cout << endl;

    return EXIT_SUCCESS;
}

Verwandter Artikel - C++ Vector

  • Wie man einen Vektor in C++ iteriert
  • Zurückgeben eines Vektors aus einer Funktion in C++