Namespaces
Variants

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

С ru.cppreference.net

 
 
 
 
void push_back( const T& value );
(1)
void push_back( T&& value );
(2) (since C++11)

Добавляет заданный элемент value в конец контейнера.

1) Новый элемент инициализируется как копия value.
2) value перемещается в новый элемент.

Никакие итераторы или ссылки не становятся недействительными.

Параметры

value - значение элемента для добавления

Требования к типам
-
Если выполняется следующее условие, поведение не определено:
1) T не является CopyInsertable для list .
2) T не является MoveInsertable для list .
(начиная с C++11)

Возвращаемое значение

(нет)

Сложность

Константа.

Исключения

Если возникает исключение (что может произойти из-за Allocator::allocate() или конструктора/оператора присваивания копирования/перемещения элемента), эта функция не имеет эффекта ( строгая гарантия безопасности исключений ).

Пример

#include <iomanip>
#include <iostream>
#include <string>
#include <list>
int main()
{
    std::list<std::string> letters;
    letters.push_back("abc");
    std::string s{"def"};
    letters.push_back(std::move(s));
    std::cout << "std::list letters holds: ";
    for (auto&& e : letters)
        std::cout << std::quoted(e) << ' ';
    std::cout << "\nMoved-from string s holds: " << std::quoted(s) << '\n';
}

Возможный вывод:

std::list letters holds: "abc" "def"
Moved-from string s holds: ""

Смотрите также

создаёт элемент на месте в конце
(public member function)
вставляет элемент в начало
(public member function)
удаляет последний элемент
(public member function)
создаёт std::back_insert_iterator типа, выведенного из аргумента
(function template)