std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>::insert
From cppreference.com
iterator insert( const value_type& value );
|
(1) | (since C++23) |
iterator insert( value_type&& value );
|
(2) | (since C++23) |
iterator insert( const_iterator pos, const value_type& value );
|
(3) | (since C++23) |
iterator insert( const_iterator pos, value_type&& value );
|
(4) | (since C++23) |
template< class P >
iterator insert( P&& x );
|
(5) | (since C++23) |
template< class P >
iterator insert( const_iterator pos, P&& x );
|
(6) | (since C++23) |
template< class InputIt >
void insert( InputIt first, InputIt last );
|
(7) | (since C++23) |
template< class InputIt >
void insert( std::sorted_equivalent_t, InputIt first, InputIt last );
|
(8) | (since C++23) |
void insert( std::initializer_list<key_type> ilist );
|
(9) | (since C++23) |
void insert( std::sorted_equivalent_t s, std::initializer_list<key_type> ilist );
|
(10) | (since C++23) |
Inserts element(s) into the container.
1) Inserts
value. Equivalent to return emplace(value);.2) Inserts
value. Equivalent to return emplace(std::move(value));.3) Inserts
value in the position as close as possible to the position just prior to pos. Equivalent to return emplace_hint(pos, value);.4) Inserts
value in the position as close as possible to the position just prior to pos. Equivalent to return emplace_hint(pos, std::move(value));.5) Inserts
x into *this as if by emplace(std::forward<P>(x));. This overload participates in overload resolution only if std::is_constructible_v<pair<key_type, mapped_type>, P> is true.6) Inserts
x into *this in the position as close as possible to the position just prior to pos. Equivalent to return emplace_hint(position, std::forward<P>(x));. This overload participates in overload resolution only if std::is_constructible_v<pair<key_type, mapped_type>, P> is true.7) Inserts elements from range
[first, last) as if performing the following operations sequentially:
- Adds elements to
cas if byfor (; first != last; ++first){value_type value = *first;c.keys.insert(c.keys.end(), std::move(value.first));c.values.insert(c.values.end(), std::move(value.second));} - Sorts the range of newly inserted elements with respect to
value_comp. - Merges the resulting sorted range and the sorted range of pre-existing elements into a single sorted range.
May allocate memory during the in-place merge operation.
8) Inserts elements from range
[first, last) as if performing the following operations sequentially:
- Adds elements to
cas if byfor (; first != last; ++first){value_type value = *first;c.keys.insert(c.keys.end(), std::move(value.first));c.values.insert(c.values.end(), std::move(value.second));} - Merges the sorted range of newly added elements and the sorted range of pre-existing elements into a single sorted range.
May allocate memory during the in-place merge operation.
9) Inserts elements from initializer list
ilist. Equivalent to insert(ilist.begin(), ilist.end());.10) Inserts elements from initializer list
ilist. Equivalent to insert(s, ilist.begin(), ilist.end());.| Information on iterator invalidation is copied from here |
Parameters
| pos | - | an iterator to the position before which the new element will be inserted |
| value | - | an element value to insert |
| first, last | - | the pair of iterators defining the source range of elements to insert |
| ilist | - | an initializer list to insert the values from |
| x | - | a value of any type that can be transparently compared with a key |
| s | - | a disambiguation tag indicating that the input sequence is sorted (with respect to value_comp())
|
| Type requirements | ||
-InputIt must meet the requirements of LegacyInputIterator.
| ||
Return value
1-6) An iterator to the inserted element.
7-10) (none)
Exceptions
1-6) If an exception is thrown by any operation, the insertion has no effect.
7-10) No exception safety guarantee. (?)
| This section is incomplete Reason: double check cases 7-10 |
Complexity
1-6) Linear in
size().8) Linear in
size().Example
| This section is incomplete Reason: no example |
