std::inplace_vector<T,N>:: emplace_back
|
template
<
class
...
Args
>
constexpr reference emplace_back ( Args && ... args ) ; |
(desde C++26) | |
Agrega un nuevo elemento al final del contenedor. Normalmente, el elemento se construye utilizando new de emplazamiento para construir el elemento in situ en la ubicación proporcionada por el contenedor. Los argumentos args... se reenvían al constructor como std:: forward < Args > ( args ) ... .
No se invalidan iteradores ni referencias, excepto
end()
, que se invalida si ocurre la inserción.
Contenidos |
Parámetros
| args | - | argumentos para reenviar al constructor del elemento |
| Requisitos de tipo | ||
-
T
debe cumplir con los requisitos de
EmplaceConstructible
.
|
||
Valor de retorno
back()
, es decir, una referencia al elemento insertado.
Complejidad
Constante.
Excepciones
- std::bad_alloc si size ( ) == capacity ( ) antes de la invocación.
- Cualquier excepción lanzada por la inicialización del elemento insertado.
Si se lanza una excepción por cualquier razón, estas funciones no tienen efecto ( strong exception safety guarantee ).
Ejemplo
#include <inplace_vector> #include <new> #include <print> #include <string> #include <utility> int main() { std::inplace_vector<std::pair<std::string, std::string>, 2> fauna; std::string dog{"\N{DOG}"}; fauna.emplace_back("\N{CAT}", dog); fauna.emplace_back("\N{CAT}", std::move(dog)); std::println("fauna = {}", fauna); try { fauna.emplace_back("\N{BUG}", "\N{BUG}"); // lanza excepción: no hay espacio } catch(const std::bad_alloc& ex) { std::println("{}", ex.what()); } std::println("fauna = {}", fauna); }
Salida posible:
fauna = [("🐈", "🐕"), ("🐈", "🐕")]
std::bad_alloc
fauna = [("🐈", "🐕"), ("🐈", "🐕")]
Véase también
|
añade un rango de elementos al final
(función miembro pública) |
|
|
añade un elemento al final
(función miembro pública) |
|
|
intenta añadir un elemento al final
(función miembro pública) |
|
|
intenta construir un elemento in-place al final
(función miembro pública) |
|
|
intenta añadir un rango de elementos al final
(función miembro pública) |
|
|
añade incondicionalmente un elemento al final
(función miembro pública) |
|
|
construye incondicionalmente un elemento in-place al final
(función miembro pública) |
|
|
elimina el último elemento
(función miembro pública) |
|
|
crea un
std::back_insert_iterator
del tipo inferido del argumento
(plantilla de función) |