![]() |
Home | Libraries | People | FAQ | More |
Insert an element or assign to the current element if the key already exists.
template< class M> std::pair< iterator, bool > insert_or_assign( string_view key, M&& m);
If the key equivalent to key
already exists in the container. assigns std::forward<M>(obj) to the mapped
type corresponding to the key.
Otherwise, inserts the new value at the end as if by insert, constructing
it from value_type(key, std::forward<M>(obj)).
If the insertion occurs and results in a rehashing of the container, all
iterators are invalidated. Otherwise, iterators are not affected. References
are not invalidated. Rehashing occurs only if the new number of elements
is greater than capacity().
Amortized constant on average, worst case linear in size().
Strong guarantee. Calls to memory_resource::allocate
may throw.
A std::pair where first
is an iterator to the existing or inserted element, and second
is true if the insertion took
place or false if the assignment
took place.
|
Name |
Description |
|---|---|
|
|
The key used for lookup and insertion |
|
|
The value to insert or assign |
|
Type |
Thrown On |
|---|---|
|
|
if key is too long |