std::flat_multiset<Key,Compare,KeyContainer>:: emplace
Sequence | ||||
(C++11)
|
||||
(C++26)
|
||||
(C++11)
|
||||
Associative | ||||
Unordered associative | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
Adaptors | ||||
(C++23)
|
||||
(C++23)
|
||||
(C++23)
|
||||
(C++23)
|
||||
Views | ||||
(C++20)
|
||||
(C++23)
|
||||
Tables | ||||
Iterator invalidation | ||||
Member function table | ||||
Non-member function table |
Member types | ||||
Member functions | ||||
Non-member functions | ||||
Helper classes | ||||
Tags | ||||
Deduction guides |
template
<
class
...
Args
>
iterator emplace ( Args && ... args ) ; |
(since C++23) | |
Inserts a new element into the container constructed in-place with the given args .
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));
This overload participates in overload resolution only if std:: is_constructible_v < value_type, Args... > is true .
Careful use of
emplace
allows the new element to be constructed while avoiding unnecessary copy or move operations.
Information on iterator invalidation is copied from here |
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
This section is incomplete
Reason: no example |
See also
constructs elements in-place using a hint
(public member function) |
|
inserts elements
(public member function) |