Namespaces
Variants

std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>:: insert

From cppreference.net
iterator insert ( const value_type & value ) ;
(1) (desde C++23)
iterator insert ( value_type && value ) ;
(2) (desde C++23)
iterator insert ( const_iterator pos, const value_type & value ) ;
(3) (desde C++23)
iterator insert ( const_iterator pos, value_type && value ) ;
(4) (desde C++23)
template < class P >
iterator insert ( P && x ) ;
(5) (desde C++23)
template < class P >
iterator insert ( const_iterator pos, P && x ) ;
(6) (desde C++23)
template < class InputIt >
void insert ( InputIt first, InputIt last ) ;
(7) (desde C++23)
template < class InputIt >
void insert ( std:: sorted_equivalent_t , InputIt first, InputIt last ) ;
(8) (desde C++23)
void insert ( std:: initializer_list < key_type > ilist ) ;
(9) (desde C++23)
void insert ( std:: sorted_equivalent_t s, std:: initializer_list < key_type > ilist ) ;
(10) (desde C++23)

Inserta elemento(s) en el contenedor.

1) Inserta value . Equivalente a return emplace ( value ) ; .
2) Inserta value . Equivalente a return emplace ( std :: move ( value ) ) ; .
3) Inserta value en la posición lo más cercana posible a la posición inmediatamente anterior a pos . Equivalente a return emplace_hint ( pos, value ) ; .
4) Inserta value en la posición más cercana posible a la posición inmediatamente anterior a pos . Equivalente a return emplace_hint ( pos, std :: move ( value ) ) ; .
5) Inserta x en * this como si fuera mediante emplace ( std:: forward < P > ( x ) ) ; . Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_constructible_v < pair < key_type, mapped_type > , P > es true .
6) Inserta x en * this en la posición más cercana posible a la posición inmediatamente anterior a pos . Equivalente a return emplace_hint ( position, std:: forward < P > ( x ) ) ; . Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_constructible_v < pair < key_type, mapped_type > , P > es true .
7) Inserta elementos del rango [ first , last ) como si realizara las siguientes operaciones de forma secuencial:
  1. Añade elementos a c como si fuera mediante
    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. Ordena el rango de elementos recién insertados con respecto a value_comp .
  3. Combina el rango ordenado resultante y el rango ordenado de elementos preexistentes en un único rango ordenado.
Puede asignar memoria durante la operación de fusión in situ.
8) Inserta elementos del rango [ first , last ) como si realizara las siguientes operaciones secuencialmente:
  1. Añade elementos a c como si fuera mediante
    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. Combina el rango ordenado de elementos recién añadidos y el rango ordenado de elementos preexistentes en un único rango ordenado.
Puede asignar memoria durante la operación de fusión in situ.
9) Inserta elementos desde la lista de inicialización ilist . Equivalente a insert ( ilist. begin ( ) , ilist. end ( ) ) ; .
10) Inserta elementos desde la lista de inicialización ilist . Equivalente a insert ( s, ilist. begin ( ) , ilist. end ( ) ) ; .

Contenidos

Parámetros

pos - un iterador a la posición antes de la cual se insertará el nuevo elemento
value - un valor de elemento a insertar
first, last - el par de iteradores que define el rango fuente de elementos a insertar
ilist - una lista de inicializadores para insertar los valores
x - un valor de cualquier tipo que pueda compararse transparentemente con una clave
s - una etiqueta de desambiguación que indica que la secuencia de entrada está ordenada (con respecto a value_comp() )
Requisitos de tipo
-
InputIt debe cumplir con los requisitos de LegacyInputIterator .

Valor de retorno

1-6) Un iterador al elemento insertado.
7-10) (ninguno)

Excepciones

1-6) Si se lanza una excepción por cualquier operación, la inserción no tiene efecto.
7-10) No hay garantía de seguridad ante excepciones. (?)

Complejidad

1-6) Lineal en size() .
7) N + M·log ( M ) , donde N es el size() antes de la operación y M es std:: distance ( first, last ) .
8) Lineal en size() .
9) N + M·log ( M ) , donde N es el size() antes de la operación y M es ilist. size ( ) .
10) Lineal en N , donde N es size() después de la operación.

Ejemplo

Véase también

construye elemento in-situ
(función miembro pública)
construye elementos in-situ usando una pista
(función miembro pública)
crea un std::insert_iterator del tipo inferido del argumento
(plantilla de función)