Namespaces
Variants

std::unordered_multiset<Key,Hash,KeyEqual,Allocator>:: emplace

From cppreference.net

template < class ... Args >
iterator emplace ( Args && ... args ) ;
(seit C++11)
(constexpr seit C++26)

Fügt ein neues Element in den Container ein, das direkt mit den gegebenen args erstellt wird.

Der Konstruktor des neuen Elements wird mit exakt denselben Argumenten aufgerufen, die an emplace übergeben wurden, weitergeleitet via std:: forward < Args > ( args ) ... .

Wenn value_type nicht EmplaceConstructible in unordered_multiset aus args ist, ist das Verhalten undefiniert.

Falls nach dem Vorgang die neue Anzahl der Elemente größer ist als das alte max_load_factor() * bucket_count() findet eine Neuverteilung statt.
Falls eine Neuverteilung auftritt (aufgrund der Einfügung), werden alle Iteratoren ungültig. Andernfalls (keine Neuverteilung) bleiben Iteratoren gültig.

Inhaltsverzeichnis

Parameter

args - Argumente, die an den Konstruktor des Elements weitergeleitet werden

Rückgabewert

Ein Iterator auf das eingefügte Element.

Exceptions

Wenn aus irgendeinem Grund eine Exception ausgelöst wird, hat diese Funktion keine Wirkung ( strong exception safety guarantee ).

Komplexität

Amortisiert konstant im Durchschnitt, im schlimmsten Fall linear in der Größe des Containers.

Hinweise

Sorgfältige Verwendung von emplace ermöglicht die Konstruktion des neuen Elements, während unnötige Kopier- oder Verschiebeoperationen vermieden werden.

Beispiel

Siehe auch

Konstruiert Elemente direkt unter Verwendung eines Hinweises
(öffentliche Elementfunktion)
Fügt Elemente ein oder Knoten (seit C++17)
(öffentliche Elementfunktion)