std::inplace_vector<T,N>:: push_back
From cppreference.net
<
cpp
|
container
|
inplace vector
|
constexpr
reference push_back
(
const
T
&
value
)
;
|
(1) | (desde C++26) |
|
constexpr
reference push_back
(
T
&&
value
)
;
|
(2) | (desde C++26) |
Añade el elemento dado value al final del contenedor.
1)
El nuevo elemento se inicializa como una copia de
value
.
2)
value
se mueve al nuevo elemento.
No se invalidan iteradores ni referencias, excepto
end()
, que se invalida si ocurre la inserción.
Contenidos |
Parámetros
| value | - | el valor del elemento a añadir |
| Requisitos de tipo | ||
-
T
debe cumplir con los requisitos de
CopyInsertable
para usar la sobrecarga (1).
|
||
-
T
debe cumplir con los requisitos de
MoveInsertable
para usar la sobrecarga (2).
|
||
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
Ejecutar este código
#include <inplace_vector> #include <new> #include <print> #include <string> int main() { std::inplace_vector<std::string, 2> fauna; std::string dog{"\N{DOG}"}; fauna.push_back("\N{CAT}"); // sobrecarga (1) fauna.push_back(std::move(dog)); // sobrecarga (2) std::println("fauna = {}", fauna); try { fauna.push_back("\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
|
construye un elemento in-situ al final
(función miembro pública) |
|
|
añade un rango de elementos al final
(función miembro pública) |
|
|
intenta añadir un elemento al final
(función miembro pública) |
|
|
intenta construir un elemento in-situ 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-situ 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) |