std::multimap::emplace(3)
π
std::multimap::emplace(3) π
okay bestie, welcome to the C++ Standard Libary manual β yes, that's literally the manual name here, and we're keeping it, no cap. This page is all about std::multimap::emplace, and it's lowkey iconic for constructing stuff directly in place. β¨
π NAME π
std::multimap::emplace - std::multimap::emplace
π Synopsis π
template< class... Args > (since C++11)
iterator emplace( Args&&... args );
Inserts a new element into the container constructed in-place with the given args. π«Ά
The constructor of the new element (i.e. std::pair<const Key, T>) is called with exactly the same arguments as supplied to emplace, forwarded via std::forward<Args>(args)....
Careful use of emplace allows the new element to be constructed while avoiding unnecessary copy or move operations. literally efficiency main character energy. π
No iterators or references are invalidated. ngl, that part ate. π
πΈ Parameters πΈ
- args β arguments to forward to the constructor of the element.
π Return value π
An iterator to the inserted element.
π₯ Exceptions π₯
If an exception is thrown for any reason, this function has no effect (strong exception safety guarantee).
π Complexity π
Logarithmic in the size of the container.
π¦ Example π¦
okay so here's the code, run it and watch the multimap do its thing:
// Run this code
#include <iostream>
#include <string>
#include <utility>
#include <map>
int main()
{
std::multimap<std::string, std::string> m;
// uses pair's move constructor
m.emplace(std::make_pair(std::string("a"), std::string("a")));
// uses pair's converting move constructor
m.emplace(std::make_pair("b", "abcd"));
// uses pair's template constructor
m.emplace("d", "ddd");
// emplace with duplicate key
m.emplace("d", "DDD");
// uses pair's piecewise constructor
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';
}
π Output: π
a => a
b => abcd
c => cccccccccc
d => ddd
d => DDD
π See also π
emplace_hintβ constructs elements in-place using a hint (C++11) (public member function)try_emplaceβ inserts in-place if the key does not exist, does nothing if the key exists (public member function)insertβ inserts elements or nodes (since C++17) (public member function)
and that's the whole page, bestie! π«Ά source: http://cppreference.com Β· version/date: 2024.06.10 Β· page: std::multimap::emplace(3) β bye! π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms