26 Containers library [containers]

26.3 Sequence containers [sequences]

26.3.10 Class template list [list]

26.3.10.4 list modifiers [list.modifiers]

iterator insert(const_iterator position, const T& x); iterator insert(const_iterator position, T&& x); iterator insert(const_iterator position, size_type n, const T& x); template <class InputIterator> iterator insert(const_iterator position, InputIterator first, InputIterator last); iterator insert(const_iterator position, initializer_list<T>); template <class... Args> reference emplace_front(Args&&... args); template <class... Args> reference emplace_back(Args&&... args); template <class... Args> iterator emplace(const_iterator position, Args&&... args); void push_front(const T& x); void push_front(T&& x); void push_back(const T& x); void push_back(T&& x);

Remarks: Не влияет на валидность итераторов и ссылок. Если выбрано исключение, никаких эффектов нет.

Complexity: Вставка одного элемента в список занимает постоянное время и ровно один вызов конструктора T. Вставка нескольких элементов в список линейна по количеству вставленных элементов, а количество вызовов конструктора копирования или конструктора перемещения T точно равно количеству вставленных элементов.

iterator erase(const_iterator position); iterator erase(const_iterator first, const_iterator last); void pop_front(); void pop_back(); void clear() noexcept;

Effects: Делает недействительными только итераторы и ссылки на удаленные элементы.

Throws: Ничего такого.

Complexity: Стирание одного элемента - это постоянная операция по времени с одним вызовом деструктора T. Стирание диапазона в списке происходит за линейное время по размеру диапазона, а количество вызовов деструктора типа T в точности равно размеру диапазона.