Wie man einen Vektor in C++ iteriert

Jinku Hu 12 Oktober 2023
  1. Schleife zur Iteration über den Vektor verwenden
  2. Verwendung einer bereichsbasierten Schleife zur Iteration über einen Vektor
  3. Verwendung von std::for_each Algorithmus zur Iteration über Vektor
Wie man einen Vektor in C++ iteriert

In diesem Artikel werden einige Methoden zur Iteration durch den C++-Vektor unter Verwendung verschiedener Schleifen vorgestellt. Beachten Sie, dass der Beispielcode zur besseren Demonstration die cout-Operation verwendet, um Elemente während der Iteration zu drucken.

Schleife zur Iteration über den Vektor verwenden

Die erste Methode ist die for-Schleife, die aus einer dreiteiligen Anweisung besteht, die jeweils durch Kommata getrennt ist. Wir beginnen, indem wir die Variable i definieren und auf Null initialisieren, was nur einmal gemacht wird. Der nächste Teil vergleicht die Variable i mit der Anzahl der Elemente im Vector, der mit der Methode size() abgerufen wird. Der letzte Teil wird bei jeder Iteration als Vergleichsteil ausgeführt, und er erhöht i um eins.

#include <iostream>
#include <vector>

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

int main() {
  vector<string> str_vec = {"bit",    "nibble",     "byte",      "char",
                            "int",    "long",       "long long", "float",
                            "double", "long double"};

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

  return EXIT_SUCCESS;
}

Ausgabe:

bit - nibble - byte - char - int - long - long long - float - double - long double -

Verwendung einer bereichsbasierten Schleife zur Iteration über einen Vektor

Die for-Schleife kann in einigen Fällen ziemlich schwer lesbar werden, und deshalb gibt es eine alternative Struktur, die als bereichsbasierte Schleife bezeichnet wird. Diese Version eignet sich besser für die Iteration von übermäßig komplizierten Containerstrukturen und bietet flexible Funktionen für den Zugriff auf Elemente. Siehe das folgende Code-Beispiel:

#include <iostream>
#include <vector>

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

int main() {
  vector<string> str_vec = {"bit",    "nibble",     "byte",      "char",
                            "int",    "long",       "long long", "float",
                            "double", "long double"};

  for (auto item : str_vec) {
    cout << item << " - ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Verwendung von std::for_each Algorithmus zur Iteration über Vektor

STL-Algorithmen verfügen über umfangreiche, einsatzbereite Funktionen, und eine dieser Methoden ist die Iteration, die als Argumente nimmt: Bereich und die auf die Bereichselemente anzuwendende Funktion. Das folgende Beispiel zeigt, wie wir ein Funktionsobjekt mit dem Ausdruck lambda deklarieren und dann diese custom_func mit einer einzigen Anweisung auf Vektorelemente anwenden können.

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

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

int main() {
  vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  auto custom_func = [](auto &i) { i *= i; };

  for_each(int_vec.begin(), int_vec.end(), custom_func);
  for (auto i : int_vec) cout << i << "; ";
  cout << endl;

  return EXIT_SUCCESS;
}
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++ Vector