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)