Namespaces
Variants

std::flat_set<Key,Compare,KeyContainer>:: emplace

From cppreference.net

template < class ... Args >
std:: pair < iterator, bool > emplace ( Args && ... args ) ;
(seit C++23)
(constexpr seit C++26)

Fügt ein neues Element in den Container ein, das vor Ort mit den gegebenen args konstruiert wird, falls kein Element mit dem Schlüssel im Container vorhanden ist.

First, initializes an object t of type value_type with std:: forward < Args > ( args ) ... , then inserts t as if by
auto it = ranges::upper_bound(c, t, compare);
c.insert(it, std::move(t));

Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: is_constructible_v < value_type, Args... > true ist.

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

Inhaltsverzeichnis

Parameter

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

Rückgabewert

Ein Paar bestehend aus einem Iterator zum eingefügten Element (oder zum Element, das die Einfügung verhindert hat) und einem bool -Wert, der auf true gesetzt ist, genau dann wenn die Einfügung stattgefunden hat.

Ausnahmen

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

Komplexität

Logarithmisch 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
(öffentliche Elementfunktion)