std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::insert_or_assign
From cppreference.com
< cpp | container | unordered map
template< class M > std::pair<iterator, bool> insert_or_assign( const Key& k, M&& obj ); |
(1) | (since C++17) |
template< class M > std::pair<iterator, bool> insert_or_assign( Key&& k, M&& obj ); |
(2) | (since C++17) |
template< class K, class M > std::pair<iterator, bool> insert_or_assign( K&& k, M&& obj ); |
(3) | (since C++26) |
template< class M > iterator insert_or_assign( const_iterator hint, const Key& k, M&& obj ); |
(4) | (since C++17) |
template< class M > iterator insert_or_assign( const_iterator hint, Key&& k, M&& obj ); |
(5) | (since C++17) |
template< class K, class M > iterator insert_or_assign( const_iterator hint, K&& k, M&& obj ); |
(6) | (since C++26) |
1,4) If a key equivalent to k already exists in the container, assigns std::forward<M>(obj) to the
mapped_type
corresponding to the key k. If the key does not exist, inserts the new value as if by insert
, constructing it from value_type(k, std::forward<M>(obj)).2,5) Same as (1,4), except the mapped value is constructed from value_type(std::move(k), std::forward<M>(obj)).
3,6) If a key equivalent to k already exists in the container, assigns std::forward<M>(obj) to the
mapped_type
corresponding to the key k. If the key does not exist, constructs an object u
of value_type
with std::forward<K>(k), std::forward<M>(obj)), then inserts u
into *this. If hash_function()(u.first) != hash_function()(k) || contains(u.first) is true, the behavior is undefined. The value_type
must be EmplaceConstructible into unordered_map
from