Wie hängen Sie einem Vektor in C an++?

Wie hängen Sie einem Vektor in C an++?
Anhängen an einen Vektor bedeutet, ein oder mehrere Elemente auf der Rückseite des Vektors hinzuzufügen. Der C ++ - Vektor hat Mitgliedsfunktionen. Die Mitgliedsfunktionen, die zum Anhängen verwendet werden können, sind: push_back (), insert () und emplace (). Die offizielle Funktion, die zum Anhängen verwendet werden soll, ist PUSPE_BACK (). Die Verwendung dieser drei Mitgliedsfunktionen zum Anhängen an einen C ++ - Vektor wird in diesem Artikel erläutert.

Um einen Vektor zu verwenden, muss die Vektorbibliothek ganz oben im Programm aufgenommen werden, mit

#enthalten

Alle Vektorcodes für diesen Artikel befinden sich in der Funktion c ++ main ().

Artikelinhalt

  • Zurückschieben
  • Einfügen
  • Empace
  • Abschluss

Zurückschieben

Ein einzelnes Element kann auf der Rückseite eines Vektors gedrückt werden. Es gibt zwei Syntaxe für die Mitgliedsfunktionen von push_back (), nämlich:

void push_back (const t & x)
void push_back (t && x)

Beide kehren unglücklich und werden ähnlich verwendet.

Der folgende Code hat einen Blumenvektor in Großbritannien. Eine weitere Blume ist push_back (), ich.e., an den Vektor angehängt. Der Vektor ist ein Vektor von Strings der String -Klasse.

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr = "Blue Throatwort", "bottebrush", "brodiaea", "besen", "columbine";
für (int i = 0; iCout<Cout<vtr.push_back ("Cornflower");
für (vector :: iterator it = vtr.Start(); Es != vtr.Ende(); es ++)
Cout<< *it << ", ";
Cout<Rückkehr 0;

Die Ausgabe ist:

Blaues Throatwort, BottleBrush, Brodiaa, Besen, Columbine,
Blauer Throatwort, Flaschenbrush, Brodiaa, Besen, Columbine, Maisblumen,

Das Programm beginnt mit den notwendigen Aufschlussrichtlinien. Dann gibt es die main () -Funktion mit dem gesamten Vektorcode. In der main () -Funktion wird ein Vektor mit fünf Blütennamenketten deklariert. Diese Liste wird dann mit einem für die Schleife und Indizes angezeigt. Die Hauptanweisung im Code lautet:

vtr.push_back ("Cornflower");

Dieser Ausdruck fügt einen weiteren einzelnen Blumenamen in die Vektorliste an. Es gibt jetzt sechs Elemente im Vektor. Das nächste Codesegment zeigt den Satz von sechs Elementen an, wobei ein For-Loop und Iteratoren verwendet werden.

Drücken Sie zurück in den leeren Vektor

Ein Vektor darf nicht immer mit Elementen erstellt werden. Ein Vektor kann erstellt werden, leer. Die Member -Funktion von Push_back () kann weiterhin verwendet werden, um Elemente in einen leeren Vektor zu füttern. Der folgende Code zeigt dies:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr;
vtr.push_back ("blaues Throatwort");
vtr.push_back ("bottebrush");
vtr.push_back ("brodiaea");
für (int i = 0; iCout<Cout<Rückkehr 0;

Die Ausgabe ist:

Blaues Throatwort, BottleBrush, Brodiaea,

In der Funktion main () deklariert die erste Anweisung einen leeren Vektor. Die nächsten drei Aussagen ernähren den Vektor mit drei Blütennamen mit der Funktion push_back (). Das folgende Codesegment zeigt die drei Werte des Vektors an.

Einfügen

Zwei vereinfachte Funktionen zum Einsetzen in einen Vektor sind:

A.Einfügen (p, t)
A.Einfügen (p, RV)

wobei 'a' der Name eines Vektors ist und P ist ein Iterator, der auf das Element zeigt, vor dem der Einsatz stattfindet. Diese Funktionen werden ähnlich verwendet, wie im folgenden Beispiel dargestellt:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr = "Blue Throatwort", "bottebrush", "brodiaea", "besen", "columbine";
Vektor :: Iterator p = vtr.Ende();
Vektor :: Iterator prop = vtr.Insert (p, "Maisblume");
für (int i = 0; iCout<Cout<Cout<< *pRet<Rückkehr 0;

Die Ausgabe ist:

Blauer Throatwort, Flaschenbrush, Brodiaa, Besen, Columbine, Maisblumen,
Kornblume

Die beiden speziellen Aussagen in diesem Code sind:

Vektor:: iterator p = vtr.Ende();
Vektor:: Iterator prop = vtr.Insert (p, "Maisblume");

Die erste Aussage hier gibt einen Iterator zurück, der kurz nach dem letzten Element des Vektors zeigt. Nach dem Einsetzen kehrte der Iterator zurück, zeigt auf das eingefügte Element. In diesem Fall ist der zurückgegebene Iterator zu tun. Der Ausdruck, *pret im Code.

A.Einfügen (p, n, t)

Dies fügt n der gleichen t -Werte ein. In diesem Fall muss am Ende wie im folgenden Code das Einfügen stattfinden:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr = "Blue Throatwort", "bottebrush", "brodiaea", "besen", "columbine";
Vektor :: Iterator p = vtr.Ende();
Vektor :: Iterator prop = vtr.Insert (p, 3, "Maisblume");
für (int i = 0; iCout<Cout<Cout<Rückkehr 0;

Die Ausgabe ist:

Blauer Throatwort, Flaschenbrush, Brodiaa, Besen, Columbine, Maisblumen, Maisblüte, Maisblüte,
5

Zwei neue Aussagen von Interesse an diesem Programm sind:

Vektor:: Iterator prop = vtr.Insert (p, 3, "Maisblume");
Und
Cout << pRet - vtr.begin() << endl;

Die erste Anweisung hier fügt 3 Elemente von "Maisblumen" ein. Die zweite Anweisung berechnet und gibt den dem Iterator entsprechenden Index zurück, der von der Funktion Insert () zurückgegeben wird. Dieser Iterator verweist auf das erste Element der eingefügten Elemente.

A.einfügen (p, i, j)

Dies fügt eine Reihe von Elementen von einem ähnlichen Vektor zum interessierenden Vektor ein. Ich und J sind Iteratoren. Das durch J angegebene Element wird nicht eingefügt. Ein solcher Bereich wird von [i, j) bezeichnet . In der Anhangssituation muss der Bereich auf der Rückseite eingefügt werden. Das folgende Programm zeigt dies:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorVec = "Cornflower", "Corsage Orchid", "Dill", "Drumstick", "Foxglove";
Vektor :: Iterator itb = vec.Start();
ITB ++;
Vektor :: Iterator ite = vec.Ende();
ite--; ite--;
vectorvtr = "Blue Throatwort", "bottebrush", "brodiaea", "besen", "columbine";
Vektor :: Iterator p = vtr.Ende();
Vektor :: Iterator prop = vtr.Insert (p, itb, ite);
für (int i = 0; iCout<Cout<Cout<Rückkehr 0;

Die Ausgabe ist:

Blauer Throatwort, BottleBrush, Brodiaa, Besen, Columbine, Corsage Orchidee, Dill,
5

Die zweite Anweisung in der Funktion main () gibt einen Iterator zurück, der auf "Maisblumen" verweist. Die dritte Aussage zeigt diesen Iterator auf "Corsage Orchid". Die Aussage nach der Rückgabe eines Iterators, der kurz nach "Foxglove" zeigt, zeigt. Die folgende Aussage zeigt diesen Iterator auf "Drumstick". Die Reichweite ist also jetzt,

"Corsage Orchid", "Dill", "Drumstick"

entsprechend [itb, ite) . Der eingefügte Bereich ist jedoch ("Corsage Orchid", "Dill"), wie oben erläutert.

A.Einfügen (p, il)

Eine Liste Literal kann auf der Rückseite des Vektors eingefügt werden. In diesem Fall wird das letzte Element der Liste eingefügt. Das folgende Programm zeigt dies:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr = "Blue Throatwort", "bottebrush", "brodiaea", "besen", "columbine";
Vektor :: Iterator p = vtr.Ende();
Vektor :: Iterator prop = vtr.Insert (p, "Corsage Orchid", "Dill", "Drumstick");
für (int i = 0; iCout<Cout<Cout<Rückkehr 0;

Die Ausgabe ist:

Blaues Throatwort, Flaschenbrush, Brodiaa, Besen, Columbine, Corsage Orchidee, Dill, Drumstick,
5

Die Sonderaussage in diesem Programm lautet:

Vektor:: Iterator prop = vtr.Insert (p, "Corsage Orchid", "Dill", "Drumstick");

Die eingefügte Liste lautet:

"Corsage Orchid", "Dill", "Drumstick"

Der zurückgegebene Iterator verweist auf das erste Element der eingefügten Liste.

Empace

Emplace ist wie ein Einsatz. Da sich dieser Artikel mit Anhängen befasst, muss der Emplace im hinteren Teil des Vektors stattfinden.

A.Emplace (P, Args)

Dies ist die vereinfachte Mitgliederfunktion von empace (). P ist ein Iterator, der auf das Element zeigt, da das neue Element eingefügt wird. Die Funktion gibt einen Iterator zurück, der auf das eingefügte Element zeigt. Das folgende Programm zeigt dies:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr = "Blue Throatwort", "bottebrush", "brodiaea", "besen", "columbine";
Vektor :: Iterator p = vtr.Ende();
Vektor :: Iterator prop = vtr.Emplace (P, "Maisblume");
für (int i = 0; iCout<Cout<Cout<< *pRet<Rückkehr 0;

Die Ausgabe ist:

Blauer Throatwort, Flaschenbrush, Brodiaa, Besen, Columbine, Maisblumen,
Kornblume

Die Sonderaussage in diesem Programm lautet:

Vektor:: Iterator prop = vtr.Emplace (P, "Maisblume");

A.emplace_back (args)

Hier ist 'A' der Name des Vektors. EMPLACE_BACK () ist wie push_back (). Es wendet ein Element an den Vektor an. Es gibt keinen Iterator zurück. Es gibt einen Verweis auf das eingefügte Element zurück. Das folgende Programm zeigt die Verwendung:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr = "Blue Throatwort", "bottebrush", "brodiaea", "besen", "columbine";
für (int i = 0; iCout<Cout<vtr.emplace_back ("Maisblume");
für (vector :: iterator it = vtr.Start(); Es != vtr.Ende(); es ++)
Cout<< *it << ", ";
Cout<Rückkehr 0;

Die Ausgabe ist:

Blaues Throatwort, BottleBrush, Brodiaa, Besen, Columbine,
Blauer Throatwort, Flaschenbrush, Brodiaa, Besen, Columbine, Maisblumen,

Die Hauptaussage im Programm lautet:

vtr.push_back ("Cornflower");

Dieser Ausdruck fügt einen weiteren einzelnen Blumenamen in die Vektorliste an. Es gibt jetzt sechs Elemente im Vektor. Das nächste Code-Segment im Programm zeigt den Satz von sechs Elementen an, wobei ein For-Loop und Iteratoren verwendet werden.

Wieder zum leeren Vektor platzieren

Ein Vektor darf nicht immer mit Elementen erstellt werden. Ein Vektor kann erstellt werden, leer. Die EMPLACE_BACK () -Mitglied -Funktion kann weiterhin verwendet werden, um Elemente in einen leeren Vektor zu füttern. Der folgende Code zeigt dies:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

vectorvtr;
String str1 = vtr.emplace_back ("blaues ThroatWort");
String str2 = vtr.emplace_back ("BottleBrush");
String str3 = vtr.emplace_back ("brodiaea");
Cout<< str1 <Cout<< str2 <Cout<< str3 <Rückkehr 0;

Die Ausgabe ist:

Blauer Throatwort
Flaschenbürste
Brodiaa

In der Funktion main () deklariert die erste Anweisung einen leeren Vektor. Die nächsten drei Aussagen ernähren den Vektor mit drei Blütennamen unter Verwendung der Funktion emplaPS_back (). Das folgende Codesegment zeigt die drei Werte des Vektors an.

Notiz; Eine zurückgegebene Referenz wird von der Art von Element empfangen.

Abschluss

Ein einzelnes Element kann an einen Vektor mit den Funktionen von push_back () und emplace_back () angehängt werden. Die Member -Funktion insert () kann auch in ihren verschiedenen überlasteten Formularen verwendet werden. Die Funktion Insert () funktioniert mit Iteratoren.