std::inplace_vector<T,N>::push_back
Von cppreference.com
< cpp | container | inplace vector
| constexpr reference push_back( const T& value ); |
(1) | (seit C++26) |
| constexpr reference push_back( T&& value ); |
(2) | (seit C++26) |
Hängt das gegebene Element value an das Ende des Containers an.
1) Das neue Element wird als Kopie von value initialisiert.
2) value wird in das neue Element verschoben.
Keine Iteratoren oder Referenzen werden ungültig, außer end(), welche ungültig wird, wenn die Einfügung stattfindet.
Inhalt |
[bearbeiten] Parameter
| value | - | Der Wert des anzuhängenden Elements |
| Typanforderungen | ||
-T muss die Anforderungen von CopyInsertable erfüllen, um Überladung (1) zu verwenden. | ||
-T muss die Anforderungen von MoveInsertable erfüllen, um Überladung (2) zu verwenden. | ||
[bearbeiten] Rückgabewert
back(), d.h. eine Referenz auf das eingefügte Element.
[bearbeiten] Komplexität
Konstant.
[bearbeiten] Ausnahmen
- std::bad_alloc, falls size() == capacity() vor dem Aufruf.
- Jede Ausnahme, die bei der Initialisierung eines eingefügten Elements ausgelöst wird.
Wenn aus irgendeinem Grund eine Ausnahme ausgelöst wird, haben diese Funktionen keine Auswirkungen (starke Ausnahme-Sicherheitsgarantie).
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <inplace_vector> #include <new> #include <print> #include <string> int main() { std::inplace_vector<std::string, 2> fauna; std::string dog{"\N{DOG}"}; fauna.push_back("\N{CAT}"); // overload (1) fauna.push_back(std::move(dog)); // overload (2) std::println("fauna = {}", fauna); try { fauna.push_back("\N{BUG}"); // throws: there is no space } catch(const std::bad_alloc& ex) { std::println("{}", ex.what()); } std::println("fauna = {}", fauna); }
Mögliche Ausgabe
fauna = ["🐈", "🐕"] std::bad_alloc fauna = ["🐈", "🐕"]
[bearbeiten] Siehe auch
| konstruiert ein Element direkt (in-place) am Ende (public member function) | |
| fügt einen Bereich von Elementen am Ende hinzu (public member function) | |
| versucht, ein Element am Ende hinzuzufügen (public member function) | |
| versucht, ein Element inplace am Ende zu konstruieren (public member function) | |
| versucht, einen Bereich von Elementen am Ende hinzuzufügen (public member function) | |
| fügt bedingungslos ein Element am Ende hinzu (public member function) | |
| konstruiert bedingungslos ein Element inplace am Ende (public member function) | |
| entfernt das letzte Element (public member function) | |
| erstellt einen std::back_insert_iterator vom Typ, der aus dem Argument abgeleitet wird (Funktionsvorlage) |