Vektor-Iterator in C++
-
Verwenden Sie die Methoden
begin()
undend()
, um in C++ über einen Vektor zu iterieren -
Verwenden Sie die Methode
advance()
, um in C++ über einen Vektor zu iterieren -
Verwenden Sie die Methoden
next()
undprev()
, um in C++ über einen Vektor zu iterieren -
Verwenden Sie die Methode
inserter()
, um in C++ über einen Vektor zu iterieren
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 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