[list.modifiers] (original) (raw)
23 Containers library [containers]
23.3 Sequence containers [sequences]
23.3.11 Class template list [list]
23.3.11.4 Modifiers [list.modifiers]
constexpr iterator insert(const_iterator position, const T& x);constexpr iterator insert(const_iterator position, T&& x);constexpr iterator insert(const_iterator position, size_type n, const T& x);template<class InputIterator> constexpr iterator insert(const_iterator position, InputIterator first, InputIterator last);template<[_container-compatible-range_](container.intro.reqmts#concept:container-compatible-range "23.2.2.1 Introduction [container.intro.reqmts]")<T> R> constexpr iterator insert_range(const_iterator position, R&& rg);constexpr iterator insert(const_iterator position, initializer_list<T>);template<class... Args> constexpr reference emplace_front(Args&&... args);template<class... Args> constexpr reference emplace_back(Args&&... args);template<class... Args> constexpr iterator emplace(const_iterator position, Args&&... args);constexpr void push_front(const T& x);constexpr void push_front(T&& x);template<[_container-compatible-range_](container.intro.reqmts#concept:container-compatible-range "23.2.2.1 Introduction [container.intro.reqmts]")<T> R> constexpr void prepend_range(R&& rg);constexpr void push_back(const T& x);constexpr void push_back(T&& x);template<[_container-compatible-range_](container.intro.reqmts#concept:container-compatible-range "23.2.2.1 Introduction [container.intro.reqmts]")<T> R> constexpr void append_range(R&& rg);
Complexity: Insertion of a single element into a list takes constant time and exactly one call to a constructor ofT.
Insertion of multiple elements into a list is linear in the number of elements inserted, and the number of calls to the copy constructor or move constructor of T is exactly equal to the number of elements inserted.
Remarks: Does not affect the validity of iterators and references.
If an exception is thrown, there are no effects.
constexpr iterator erase(const_iterator position);constexpr iterator erase(const_iterator first, const_iterator last);constexpr void pop_front();constexpr void pop_back();constexpr void clear() noexcept;
Effects: Invalidates only the iterators and references to the erased elements.
Complexity: Erasing a single element is a constant time operation with a single call to the destructor ofT.
Erasing a range in a list is linear time in the size of the range and the number of calls to the destructor of typeTis exactly equal to the size of the range.