std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>:: insert
|
std::
pair
<
iterator,
bool
>
insert
(
const
value_type
&
value
)
;
|
(1) | (desde C++23) |
|
std::
pair
<
iterator,
bool
>
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
>
std:: pair < iterator, bool > 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_unique_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_unique_t
s,
std::
initializer_list
<
key_type
>
ilist
)
;
|
(10) | (desde C++23) |
Inserta elemento(s) en el contenedor, si el contenedor no contiene ya un elemento con una clave equivalente.
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
<
std::
pair
<
key_type, mapped_type
>
, P
>
es
true
.
x
en
*
this
en la posición más cercana posible a la posición inmediatamente anterior a
pos
. Equivalente a
return
emplace_hint
(
pos,
std::
forward
<
P
>
(
x
)
)
;
. Esta sobrecarga participa en la resolución de sobrecarga solo si
std::
is_constructible_v
<
std::
pair
<
key_type, mapped_type
>
, P
>
es
true
.
[
first
,
last
)
como si realizara las siguientes operaciones secuencialmente:
-
Añade elementos a
ccomo 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 ) ) ;
} -
Ordena el rango de elementos recién insertados con respecto a
value_comp. - Combina el rango ordenado resultante y el rango ordenado de elementos preexistentes en un único rango ordenado.
-
Elimina los elementos duplicados como si fuera mediante:
auto zv = std :: views:: zip ( c. keys , c. values ) ;
auto it = ranges:: unique ( zv, key_equiv ( compare ) ) . begin ( ) ;
auto dist = std:: distance ( zv. begin ( ) , it ) ;
c. keys . erase ( c. keys . begin ( ) + dist, c. keys . end ( ) ) ;
c. values . erase ( c. values . begin ( ) + dist, c. values . end ( ) ) ;
[
first
,
last
)
como si realizara las siguientes operaciones secuencialmente:
-
Añade elementos a
ccomo 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 ) ) ;
} - Combina el rango ordenado de elementos recién añadidos y el rango ordenado de elementos preexistentes en un único rango ordenado.
-
Elimina los elementos duplicados como si fuera mediante:
auto zv = std :: views:: zip ( c. keys , c. values ) ;
auto it = ranges:: unique ( zv, key_equiv ( compare ) ) . begin ( ) ;
auto dist = std:: distance ( zv. begin ( ) , it ) ;
c. keys . erase ( c. keys . begin ( ) + dist, c. keys . end ( ) ) ;
c. values . erase ( c. values . begin ( ) + dist, c. values . end ( ) ) ;
| La información sobre invalidación de iteradores está copiada de aquí |
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 de la cual 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()
) y contiene solo elementos únicos
|
| Requisitos de tipo | ||
-
InputIt
debe cumplir con los requisitos de
LegacyInputIterator
.
|
||
Valor de retorno
Excepciones
|
Esta sección está incompleta
Razón: casos 7-10 |
Complejidad
size()
.
N
es el
size()
antes de la operación y
M
es
std::
distance
(
first, last
)
.
size()
.
Notas
La inserción con sugerencia
(
(
3,4
)
y
(
6
)
)
no devuelve un booleano para ser compatible en firma con la inserción posicional en contenedores secuenciales, como
std::vector::insert
. Esto hace posible crear insertores genéricos como
std::inserter
. Una forma de verificar el éxito de una inserción con sugerencia es comparar
size()
antes y después.
Ejemplo
|
Esta sección está incompleta
Razón: sin 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) |
|
|
inserta un elemento o asigna al elemento actual si la clave ya existe
(función miembro pública) |
|
|
crea un
std::insert_iterator
del tipo inferido del argumento
(plantilla de función) |