std::inplace_vector<T,N>:: emplace_back
|
template
<
class
...
Args
>
constexpr reference emplace_back ( Args && ... args ) ; |
(seit C++26) | |
Fügt ein neues Element am Ende des Containers an. Typischerweise wird das Element mittels Placement- new direkt an der vom Container bereitgestellten Position konstruiert. Die Argumente args... werden an den Konstruktor als std:: forward < Args > ( args ) ... weitergeleitet.
Keine Iteratoren oder Referenzen werden ungültig, außer
end()
, welches ungültig wird, wenn die Einfügung stattfindet.
Inhaltsverzeichnis |
Parameter
| args | - | Argumente, die an den Konstruktor des Elements weitergeleitet werden |
| Typanforderungen | ||
-
T
muss die Anforderungen von
EmplaceConstructible
erfüllen.
|
||
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
#include <inplace_vector> #include <new> #include <print> #include <string> #include <utility> int main() { std::inplace_vector<std::pair<std::string, std::string>, 2> fauna; std::string dog{"\N{DOG}"}; fauna.emplace_back("\N{CAT}", dog); fauna.emplace_back("\N{CAT}", std::move(dog)); std::println("fauna = {}", fauna); try { fauna.emplace_back("\N{BUG}", "\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
|
fügt eine Reihe von Elementen am Ende hinzu
(öffentliche Elementfunktion) |
|
|
fügt ein Element 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, eine Reihe 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) |