Init
This commit is contained in:
84
cppdraft/list/modifiers.md
Normal file
84
cppdraft/list/modifiers.md
Normal file
@@ -0,0 +1,84 @@
|
||||
[list.modifiers]
|
||||
|
||||
# 23 Containers library [[containers]](./#containers)
|
||||
|
||||
## 23.3 Sequence containers [[sequences]](sequences#list.modifiers)
|
||||
|
||||
### 23.3.11 Class template list [[list]](list#modifiers)
|
||||
|
||||
#### 23.3.11.4 Modifiers [list.modifiers]
|
||||
|
||||
[ð](#lib:insert,list)
|
||||
|
||||
`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);
|
||||
`
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L9382)
|
||||
|
||||
*Complexity*: Insertion of a single element into a list takes constant time and
|
||||
exactly one call to a constructor ofT[.](#1.sentence-1)
|
||||
|
||||
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[.](#1.sentence-2)
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L9391)
|
||||
|
||||
*Remarks*: Does not affect the validity of iterators and references[.](#2.sentence-1)
|
||||
|
||||
If an exception is thrown, there are no effects[.](#2.sentence-2)
|
||||
|
||||
[ð](#lib:erase,list)
|
||||
|
||||
`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](#3)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L9407)
|
||||
|
||||
*Effects*: Invalidates only the iterators and references to the erased elements[.](#3.sentence-1)
|
||||
|
||||
[4](#4)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L9411)
|
||||
|
||||
*Throws*: Nothing[.](#4.sentence-1)
|
||||
|
||||
[5](#5)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L9415)
|
||||
|
||||
*Complexity*: Erasing a single element is a constant time operation with a single call to the destructor ofT[.](#5.sentence-1)
|
||||
|
||||
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[.](#5.sentence-2)
|
||||
Reference in New Issue
Block a user