Vektoren mühelos anhängen
In der Welt der Vektormanipulation besteht oft die Notwendigkeit, einen Vektor an das Ende eines anderen anzuhängen. Während das Durchlaufen der Elemente und das Vornehmen einzelner Einfügungen wie der offensichtliche Ansatz erscheinen mag, sind wir hier, um eine effizientere und elegantere Lösung anzubieten.
Bedenken Sie den folgenden Codeausschnitt:
vector<int> a; vector<int> b;
Angenommen, beide Vektoren haben etwa 30 Elemente, wie können wir dann den Inhalt von Vektor b am Ende von Vektor a hinzufügen?
Die Brute-Force-Methode würde die Verwendung von vector
Stattdessen führen wir die effizientere Methode ein:
a.insert(a.end(), b.begin(), b.end());
Alternativ können Sie für C 11 und höher diese Variante in Betracht ziehen:
a.insert(std::end(a), std::begin(b), std::end(b));
Diese Methoden nutzen die Funktion std::insert(), die drei Argumente benötigt: einen Iterator zum Einfügepunkt, einen Iterator zum Anfang des Quellbereichs und einen Iterator zum Ende des Quellbereichs . Durch die Bereitstellung der entsprechenden Iteratoren können wir den Inhalt von Vektor b nahtlos an Vektor a anhängen.
Die zweite Variante des Codeausschnitts verwendet generische Iteratoren und ist somit auch auf ein Array b anwendbar. Dieser Ansatz erfordert jedoch C 11 oder höher.
Für benutzerdefinierte Typen können wir Argument-Dependent Lookup (ADL) verwenden, um den Code weiter zu vereinfachen:
using std::begin, std::end; a.insert(end(a), begin(b), end(b));
Mit diesen eleganten Lösungen wird das Anhängen von Vektoren zu einer mühelosen Aufgabe, was die Effizienz und Wartbarkeit Ihres Codes erheblich verbessert.
Das obige ist der detaillierte Inhalt vonWie kann ich in C effizient einen Vektor an einen anderen anhängen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!