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 el elemento dado value al final del contenedor.
value.value se mueve al nuevo elemento.Si después de la operación el nuevo size() es mayor que el anterior capacity(), se produce una reasignación, en cuyo caso todos los iteradores (incluyendo el iterador end()) y todas las referencias a los elementos se invalidan. De lo contrario, solo se invalida el iterador end().
Parámetros
| value | - | el valor del elemento a añadir |
|
(desde C++11) | ||||||
Valor de retorno
(ninguno)
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) |