Verstehen von Vector insert() in C++
Einführung
In diesem Tutorial werden wir vector insert() in C++ kennenlernen. Wir betrachten, wie es funktioniert und wie es genutzt werden kann, um den Einfügevorgang auf verschiedene Weisen mit Beispielen durchzuführen.
Die Funktion vector::insert() in C++
Grundsätzlich wird die Funktion vector::insert() aus der STL in C++ verwendet, um Elemente oder Werte in einen Vektor-Container einzufügen. Im Allgemeinen gibt die Funktion einen Iterator zurück, der auf das erste der eingefügten Elemente zeigt.
Verwendung der insert()-Funktion bei Vektoren
Die insert()-Methode kann verwendet werden, um einzelne oder mehrere Elemente auf unterschiedliche Weise in einen gegebenen Vektor einzufügen, je nach Fall. Wir können einen einzelnen Wert an unserer gewünschten Position einfügen, wir können sogar mehrere Werte auf einmal in den Vektor einfügen, und wir können sogar eine Reihe von Werten aus einem anderen Vektor einfügen.
Sehen wir uns also an, wie wir das leicht bewerkstelligen können.
1. Einfügen eines einzelnen Wertes in einen Vektor
Wir können direkt einen Iterator, der auf unsere gewünschte Position zeigt, und den einzufügenden Wert an die insert()-Funktion übergeben, um einen Vektor zu modifizieren.
Betrachten Sie das Beispiel unten, hier versuchen wir, den Wert 10 am Anfang des Vektors einzufügen.
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vec {1,2,3,4,5};
cout<<"Anfänglich Vektor: ";
for(auto i=vec.begin(); i<vec.end(); i++)
{
cout<<" "<<*i;
}
vec.insert(vec.begin(),10); //Einfügen von 10 in den Vektor
cout<<"\n\nDer modifizierte Vektor ist: ";
for(auto i=vec.begin(); i<vec.end(); i++)
{
cout<<" "<<*i;
}
return 0;
}
Output:
Anfänglich Vektor: 1 2 3 4 5
Der modifizierte Vektor ist: 10 1 2 3 4 5
Hier,
- Initialisieren wir zunächst einen Vektor, vec. Und drucken denselben aus,
- Dann rufen wir die Funktion insert() für den Vektor vec mit den Parametern vec.begin() und 10(neuer Wert) auf. Beachten Sie, dass vec.begin() einen Iterator zurückgibt, der auf den Anfang des Vektors zeigt,
- Nach dem Einfügen drucken wir den neuen Vektor mit einer einfachen for-Schleife aus, um den resultierenden Vektor zu sehen.
2. Mehrfaches Einfügen desselben Wertes
Wir können auch mehrere Werte auf einmal in einen Vektor einfügen, indem wir die insert()-Funktion verwenden. Dies kann erfolgen, indem wir einen Iterator übergeben, der auf unsere Startposition zeigt, die Anzahl der Wiederholungen des Werts und schließlich den Wert selbst.
Das Beispiel unten veranschaulicht die Verwendung.
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vec {10,20,30,40};
cout<<"Anfänglich Vektor: ";
for(auto i=vec.begin(); i<vec.end(); i++)
{
cout<<" "<<*i;
}
vec.insert(vec.end(),3,100); //Einfügen von 100, 3 mal in den Vektor
cout<<"\n\nDer modifizierte Vektor ist: ";
for(auto i=vec.begin(); i<vec.end(); i++)
{
cout<<" "<<*i;
}
return 0;
}
Output:
Anfänglich Vektor: 10 20 30 40
Der modifizierte Vektor ist: 10 20 30 40 100 100 100
Hier,
- Initialisieren wir unseren Vektor vec und geben ihn aus,
- Dann übergeben wir einen Iterator, der auf das Ende des Vektors zeigt, wie er von vec.end() zurückgegeben wird, 3 (die Anzahl der Wiederholungen des Wertes) und den Wert 100 an die Funktion insert().
- Auf diese Weise wird, wie wir in der Ausgabe sehen können, 100 dreimal am Ende des Vektors vec eingefügt.
3. Einfügen eines anderen Vektors
Weiterhin können wir auch Elemente eines anderen Vektors in unseren alten Vektor einfügen. Wir müssen nur einen Iterator übergeben, der auf die Position in unserem Vektor zeigt, an der wir einen anderen Vektor einfügen möchten. Dazu kommen die Iteratoren, die auf den Anfang und das Ende des zweiten Vektors zeigen.
Lassen Sie uns ein kleines Beispiel nehmen, um die Arbeitsweise zu verstehen.
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vec {2,4,6,8};
vector<int> vec2 {1,3,5,7};
cout<<"Anfänglich erster Vektor: ";
for(auto i=vec.begin(); i<vec.end(); i++)
{
cout<<" "<<*i;
}
cout<<"\nAnfänglich zweiter Vektor: ";
for(auto i=vec2.begin(); i<vec2.end(); i++)
{
cout<<" "<<*i;
}
//Einfügen von vec2 am Anfang des vec-Vektors
vec.insert(vec.begin(),vec2.begin(),vec2.end());
cout<<"\n\nDer modifizierte Vektor ist: ";
for(auto i=vec.begin(); i<vec.end(); i++)
{
cout<<" "<<*i;
}
return 0;
}
Output:
Anfänglich erster Vektor: 2 4 6 8
Anfänglich zweiter Vektor: 1 3 5 7
Der modifizierte Vektor ist: 1 3 5 7 2 4 6 8
Schlussfolgerung
In diesem Tutorial haben wir die Arbeitsweise sowie die Verwendung der vector insert()-Funktion aus der STL in C++ erklärt. Für ein besseres Verständnis empfehlen wir, die obigen Code-Schnipsel selbst auszuprobieren.