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:
  1. Adds elements to c as if by
    for ( ; 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 ) ) ;
    }
  2. Sorts the range of newly inserted elements with respect to value_comp.
  3. 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:
  1. Adds elements to c as if by
    for ( ; 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 ) ) ;
    }
  2. 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 ( ) ) ;

Parameters

pos - an iterator to the position before which the new element will be inserted
value - an element value to insert
first, last - a 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. (?)

Complexity

1-6) Linear in size().
7) N + M·log(M), where N is the size() before the operation and M is std::distance(first, last)
8) Linear in size().
9) N + M·log(M), where N is the size() before the operation and M is ilist.size()
10) Linear in N, where N is size() after the operation.

Example

See also

constructs element in-place
(public member function)
constructs elements in-place using a hint
(public member function)
creates a std::insert_iterator of type inferred from the argument
(function template)