std::vector<T,Allocator>:: push_back
|
void
push_back
(
const
T
&
value
)
;
|
(1) | (constexpr desde C++20) |
|
void
push_back
(
T
&&
value
)
;
|
(2) |
(desde C++11)
(constexpr desde C++20) |
Añade una copia de value al final del contenedor.
Si después de la operación el nuevo
size()
es mayor que la antigua
capacity()
ocurre una reasignación de memoria, en cuyo caso todos los iteradores (incluyendo el iterador
end()
) y todas las referencias a los elementos quedan invalidados. De lo contrario, solo el iterador
end()
queda invalidado.
Contenidos |
Parámetros
| value | - | el valor del elemento a añadir |
|
(desde C++11) | ||||||
Complejidad
Constante amortizada.
Excepciones
Si se lanza una excepción (que puede ser debido a
Allocator::allocate()
o al constructor/operador de asignación de copia/desplazamiento de elementos), esta función no tiene efecto (
garantía fuerte de excepción
).
|
Si el constructor de movimiento de
|
(desde C++11) |
Notas
Algunas implementaciones lanzan
std::length_error
cuando
push_back
provoca una realocación que excede
max_size
(debido a una llamada implícita a un equivalente de
reserve
(
size
() + 1))
.
Ejemplo
#include <iomanip> #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> letters; letters.push_back("abc"); std::string s{"def"}; letters.push_back(std::move(s)); std::cout << "std::vector letters holds: "; for (auto&& e : letters) std::cout << std::quoted(e) << ' '; std::cout << "\nMoved-from string s holds: " << std::quoted(s) << '\n'; }
Salida posible:
std::vector letters holds: "abc" "def" Moved-from string s holds: ""
Véase también
|
(C++11)
|
construye un elemento en el lugar 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) |