std::multimap<Key,T,Compare,Allocator>:: emplace
|
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 (d.h.
std::
pair
<
const
Key, T
>
) wird mit exakt denselben Argumenten aufgerufen, die an
emplace
übergeben wurden, weitergeleitet via
std::
forward
<
Args
>
(
args
)
...
.
Wenn
value_type
nicht
EmplaceConstructible
in
multimap
aus
args
ist, ist das Verhalten undefiniert.
Keine Iteratoren oder Referenzen werden ungültig.
Inhaltsverzeichnis |
Parameter
| args | - | Argumente, die an den Konstruktor des Elements weitergeleitet werden sollen |
Rückgabewert
Ein Iterator auf das eingefügte Element.
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
#include <iostream> #include <string> #include <utility> #include <map> int main() { std::multimap<std::string, std::string> m; // verwendet Pairs Move-Konstruktor m.emplace(std::make_pair(std::string("a"), std::string("a"))); // verwendet Pairs konvertierenden Move-Konstruktor m.emplace(std::make_pair("b", "abcd")); // verwendet Pairs Template-Konstruktor m.emplace("d", "ddd"); // emplace mit doppeltem Schlüssel m.emplace("d", "DDD"); // verwendet Pairs Piecewise-Konstruktor m.emplace(std::piecewise_construct, std::forward_as_tuple("c"), std::forward_as_tuple(10, 'c')); for (const auto& p : m) std::cout << p.first << " => " << p.second << '\n'; }
Ausgabe:
a => a b => abcd c => cccccccccc d => ddd d => DDD
Siehe auch
|
(C++11)
|
Konstruiert Elemente direkt unter Verwendung eines Hinweises
(öffentliche Elementfunktion) |
|
Fügt Elemente ein
oder Knoten
(seit C++17)
(öffentliche Elementfunktion) |