Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
template< class... Args >
iterator emplace( Args&&... args );
(seit C++11)

Fügt ein neues Element in den Container ein, das mit den gegebenen args vor Ort konstruiert wird.

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

Eine sorgfältige Verwendung von emplace ermöglicht die Konstruktion des neuen Elements unter Vermeidung unnötiger Kopier- oder Verschiebungsoperationen.

Wenn nach der Operation die neue Anzahl von Elementen größer ist als max_load_factor() * bucket_count(), findet ein Rehashing statt.
Wenn Rehashing stattfindet (aufgrund der Einfügung), werden alle Iteratoren ungültig. Andernfalls (kein Rehashing) werden Iteratoren nicht ungültig.

Inhalt

[bearbeiten] Parameter

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

[bearbeiten] Rückgabewert

Ein Iterator zu dem eingefügten Element.

[bearbeiten] Ausnahmen

Wenn aus irgendeinem Grund eine Ausnahme ausgelöst wird, hat diese Funktion keine Auswirkungen (starkes Ausnahmesicherheitsgarantie).

[bearbeiten] Komplexität

Im Durchschnitt amortisiert konstant, im schlimmsten Fall linear zur Größe des Containers.

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

konstruiert Elemente "in place" unter Verwendung eines Hinweises
(public member function) [edit]
fügt Elemente ein oder Knoten(seit C++17)
(public member function) [edit]