Vektor-Iterator in C++

Sheeraz Gul 12 Oktober 2023
  1. Verwenden Sie die Methoden begin() und end(), um in C++ über einen Vektor zu iterieren
  2. Verwenden Sie die Methode advance(), um in C++ über einen Vektor zu iterieren
  3. Verwenden Sie die Methoden next() und prev(), um in C++ über einen Vektor zu iterieren
  4. Verwenden Sie die Methode inserter(), um in C++ über einen Vektor zu iterieren
Vektor-Iterator in C++

Dieses Tutorial zeigt, wie man in C++ über einen Vektor iteriert.

C++ bietet viele Methoden zum Iterieren über Vektoren. Diese Methoden werden Iteratoren genannt, die auf die Speicheradressen von STL-Containern zeigen; Dieses Tutorial zeigt verschiedene Methoden zum Iterieren über die Vektoren in C++.

Verwenden Sie die Methoden begin() und end(), um in C++ über einen Vektor zu iterieren

Die Methode begin() gibt den Anfangspunkt eines Containers und die Methode end() den Endpunkt des Containers zurück. Beide Methoden können nach dem Iterator show verwendet werden oder den Wert eines Vektors verwenden.

Siehe das Beispiel:

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};

  // Declare the iterator to a vector
  vector<char>::iterator ptr;

  // use begin() and end() to dispaly the members of the vector
  cout << "The vector values are : ";
  for (ptr = DemoVector.begin(); ptr < DemoVector.end(); ptr++)
    cout << *ptr << " ";

  return 0;
}

Der obige Code zeigt die Vektorwerte mit den Iteratormethoden begin() und end() an. Siehe die Ausgabe:

The vector Values are : d e l f t s t a c k

Verwenden Sie die Methode advance(), um in C++ über einen Vektor zu iterieren

Die Methode advance() wird verwendet, um die Iteratorposition zu inkrementieren, bis eine bestimmte Zahl im Argument angegeben ist. Mal sehen, wie es funktioniert.

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};

  // Declare the iterator to a vector
  vector<char>::iterator ptr = DemoVector.begin();

  // Use advance() to increment iterator position to 6th element
  advance(ptr, 5);

  cout << "The element after incrementing the iterator position is : ";
  cout << *ptr << " ";

  return 0;
}

Der obige Code verwendet die Methode advance, um die Position des Iterators auf das sechste Element s zu erhöhen. Siehe die Ausgabe:

The element after incrementing the iterator position is : s

Verwenden Sie die Methoden next() und prev(), um in C++ über einen Vektor zu iterieren

Die Methode next() wird verwendet, um einen neuen Iterator zurückzugeben, und dieser Iterator zeigt, nachdem er die in seinen Argumenten erwähnten Positionen vorgerückt hat. In ähnlicher Weise wird die Methode prev() verwendet, um einen neuen Iterator zurückzugeben, und dieser Iterator zeigt nach dem Dekrementieren der in seinen Argumenten erwähnten Positionen.

Versuchen wir, mit den Methoden next und prev über einen Vektor zu iterieren.

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};

  // Declaring iterators to a vector
  vector<char>::iterator ptr = DemoVector.begin();
  vector<char>::iterator ftr = DemoVector.end();

  // Use next() method to return new iterator points to the 5th element
  auto DemoIterator1 = next(ptr, 4);

  // Use prev() method to return new iterator points to 4th element
  auto DemoIterator2 = prev(ftr, 4);

  // Display next iterator position
  cout << "Element of new iterator using next() is : ";
  cout << *DemoIterator1 << " ";
  cout << endl;

  // Display prev iterator position
  cout << "Element of new iterator using prev() is : ";
  cout << *DemoIterator2 << " ";
  cout << endl;

  return 0;
}

Der obige Code iteriert über den Vektor mit den Methoden next() und prev(). Siehe die Ausgabe:

Element of new iterator using next() is : t
Element of new iterator using prev() is : t

Verwenden Sie die Methode inserter(), um in C++ über einen Vektor zu iterieren

Diese Methode fügt Elemente in den Vektor ein, während sie darüber iteriert. Diese Methode benötigt zwei Parameter, der erste ist der Container und der andere die Position, an der das Element eingefügt wird.

Versuchen wir nun ein Beispiel zum Einfügen von Elementen in einen Vektor beim Iterieren.

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector1 = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};
  vector<char> DemoVector2 = {'.', 'c', 'o', 'm'};

  // Declare iterator to a vector
  vector<char>::iterator ptr = DemoVector1.begin();

  // Use advance to set the position
  advance(ptr, 10);

  // copy 1 vector elements into other using inserter()
  copy(DemoVector2.begin(), DemoVector2.end(), inserter(DemoVector1, ptr));

  // Display the new vector elements
  cout << "The new vector after insertion of elements is : ";
  for (char &a : DemoVector1) cout << a << " ";

  return 0;
}

Der obige Code fügt während der Iteration das Element eines Vektors an einer bestimmten Position in einen anderen ein. Siehe die Ausgabe:

The new vector after insertion of elements is : d e l f t s t a c k . c o m
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - C++ Vector