std::inplace_vector<T,N>:: push_back
From cppreference.net
<
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) |
Fügt das angegebene Element value am 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()
, welches ungültig wird, wenn die Einfügung stattfindet.
Inhaltsverzeichnis |
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.
|
||
Rückgabewert
back()
, d.h. eine Referenz auf das eingefügte Element.
Komplexität
Konstante.
Ausnahmen
- std::bad_alloc falls size ( ) == capacity ( ) vor dem Aufruf zutrifft.
- Jede Ausnahme, die durch die Initialisierung des eingefügten Elements ausgelöst wird.
Wenn aus irgendeinem Grund eine Exception ausgelöst wird, haben diese Funktionen keine Wirkung ( strong exception safety guarantee ).
Beispiel
Diesen Code ausführen
#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}"); // Überladung (1) fauna.push_back(std::move(dog)); // Überladung (2) std::println("fauna = {}", fauna); try { fauna.push_back("\N{BUG}"); // wirft Exception: kein Platz vorhanden } catch(const std::bad_alloc& ex) { std::println("{}", ex.what()); } std::println("fauna = {}", fauna); }
Mögliche Ausgabe:
fauna = ["🐈", "🐕"] std::bad_alloc fauna = ["🐈", "🐕"]
Siehe auch
|
Konstruiert ein Element direkt am Ende
(öffentliche Elementfunktion) |
|
|
Fügt einen Bereich von Elementen am Ende hinzu
(öffentliche Elementfunktion) |
|
|
Versucht, ein Element am Ende hinzuzufügen
(öffentliche Elementfunktion) |
|
|
Versucht, ein Element direkt am Ende zu konstruieren
(öffentliche Elementfunktion) |
|
|
Versucht, einen Bereich von Elementen am Ende hinzuzufügen
(öffentliche Elementfunktion) |
|
|
Fügt bedingungslos ein Element am Ende hinzu
(öffentliche Elementfunktion) |
|
|
Konstruiert bedingungslos ein Element direkt am Ende
(öffentliche Elementfunktion) |
|
|
Entfernt das letzte Element
(öffentliche Elementfunktion) |
|
|
Erstellt einen
std::back_insert_iterator
vom aus dem Argument abgeleiteten Typ
(Funktionstemplate) |