std::flat_multiset<Key,Compare,KeyContainer>::emplace
Von cppreference.com
< cpp | container | flat multiset
| template< class... Args > iterator emplace( Args&&... args ); |
(seit C++23) | |
Fügt ein neues Element in den Container ein, das mit den gegebenen args vor Ort konstruiert wird.
Zuerst wird ein Objekt t vom Typvalue_type mit std::forward<Args>(args)... initialisiert, dann wird t eingefügt, als ob durchauto it = ranges::upper_bound(c, t, compare); c.insert(it, std::move(t));
Diese Überladung nimmt an der Überladungsauflösung teil, nur wenn std::is_constructible_v<value_type, Args...> true ist.
Eine sorgfältige Verwendung von emplace ermöglicht die Konstruktion des neuen Elements unter Vermeidung unnötiger Kopier- oder Verschiebungsoperationen.
| Informationen zur Iterator-Invalidierung sind von hier kopiert. |
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
Logarithmisch zur Größe des Containers.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| konstruiert Elemente "in place" unter Verwendung eines Hinweises (public member function) | |
| fügt Elemente ein (public member function) |