Files
cppdraft_translate/cppdraft/list/modifiers.md
2025-10-25 03:02:53 +03:00

3.4 KiB

[list.modifiers]

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 constexpr iterator insert(const_iterator position, InputIterator first, InputIterator last); template<container-compatible-range R> constexpr iterator insert_range(const_iterator position, R&& rg); constexpr iterator insert(const_iterator position, initializer_list);

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 R> constexpr void prepend_range(R&& rg); constexpr void push_back(const T& x); constexpr void push_back(T&& x); template<container-compatible-range R> constexpr void append_range(R&& rg); `

1

#

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.

2

#

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;

3

#

Effects: Invalidates only the iterators and references to the erased elements.

4

#

Throws: Nothing.

5

#

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 typeT is exactly equal to the size of the range.