Namespaces
Variants

std::vector<T,Allocator>::push_back

De es.cppreference.net

 
 
 
 
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.

1) El nuevo elemento se inicializa como una copia de value.
2) 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

Requisitos de tipo
-
Si se cumple la siguiente condición, el comportamiento no está definido:
1) T no es CopyInsertable en vector .
2) T no es MoveInsertable en vector .
(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 T no es noexcept y T no es CopyInsertable en * this , vector utilizará el constructor de movimiento que puede lanzar excepciones. Si lanza una excepción, la garantía se suspende y los efectos no están especificados.

(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

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)