std::flat_set<Key,Compare,KeyContainer>:: emplace
|
template
<
class
...
Args
>
std:: pair < iterator, bool > emplace ( Args && ... args ) ; |
(desde C++23)
(constexpr desde C++26) |
|
Inserta un nuevo elemento en el contenedor construido in-situ con los args dados, si no existe ningún elemento con la clave en el contenedor.
First, initializes an object t of type
value_type
with
std::
forward
<
Args
>
(
args
)
...
, then inserts
t
as if by
auto it = ranges::upper_bound(c, t, compare); c.insert(it, std::move(t));
Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_constructible_v < value_type, Args... > es true .
Si
value_type
no es
EmplaceConstructible
en
flat_set
desde
args
, el comportamiento es indefinido.
| La información sobre la invalidación de iteradores está copiada de aquí |
Contenidos |
Parámetros
| args | - | argumentos para reenviar al constructor del elemento |
Valor de retorno
Un par que consiste en un iterador al elemento insertado (o al elemento que impidió la inserción) y un valor bool establecido en true si y solo si la inserción tuvo lugar.
Excepciones
Si se lanza una excepción por cualquier razón, esta función no tiene efecto ( strong exception safety guarantee ).
Complejidad
Logarítmico en el tamaño del contenedor.
Notas
El uso cuidadoso de
emplace
permite construir el nuevo elemento evitando operaciones innecesarias de copia o movimiento.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
construye elementos in-situ usando una pista
(función miembro pública) |
|
|
inserta elementos
(función miembro pública) |