Difference between revisions of "cpp/container/inplace vector/insert"
From cppreference.com
< cpp | container | inplace vector
(+page.) |
|||
Line 55: | Line 55: | ||
===Complexity=== | ===Complexity=== | ||
− | Linear in the distance between {{c|pos}} and {{rlpf|end}} of the container. | + | Linear in the number of elements inserted plus the distance between {{c|pos}} and {{rlpf|end}} of the container. |
===Exceptions=== | ===Exceptions=== |
Revision as of 14:18, 27 August 2024
constexpr iterator insert( const_iterator pos, const T& value ); |
(1) | (since C++26) |
constexpr iterator insert( const_iterator pos, T&& value ); |
(2) | (since C++26) |
constexpr iterator insert( const_iterator pos, size_type count, const T& value ); |
(3) | (since C++26) |
template< class InputIt > constexpr iterator insert( const_iterator pos, InputIt first, InputIt last ); |
(4) | (since C++26) |
constexpr iterator insert( const_iterator pos, std::initializer_list<T> ilist ); |
(5) | (since C++26) |
Inserts elements at the specified location in the container.
1) Inserts a copy of value before pos.
2) Inserts value before pos, possibly using move semantics.
3) Inserts count copies of the value before pos.
4) Inserts elements from range
[
first,
last)
before pos.
This overload participates in overload resolution only if InputIt
qualifies as LegacyInputIterator, to avoid ambiguity with the overload (3). Each iterator in
[
first,
last)
is dereferenced once. If first and last are iterators into *this, the behavior is undefined.
5) Inserts elements from initializer list ilist before pos. Equivalent to: insert(pos, ilist.begin(), ilist.end());.
Contents |
Parameters
pos | - | iterator before which the content will be inserted (pos may be the end() iterator)
|
value | - | element value to insert |
count | - | number of elements to insert |
first, last | - | the range of elements to insert |
ilist | - | std::initializer_list to insert the values from |
Type requirements | ||
-T must meet the requirements of CopyInsertable in order to use overload (1).
| ||
-T must meet the requirements of MoveInsertable in order to use overload (2).
| ||
-T must meet the requirements of CopyAssignable and CopyInsertable in order to use overload (3).
| ||
-T must meet the requirements of EmplaceConstructible in order to use overloads (4,5).
|
Return value
1,2) Iterator pointing to the inserted value.
3) Iterator pointing to the first element inserted, or pos if count == 0.
4) Iterator pointing to the first element inserted, or pos if first == last.
5) Iterator pointing to the first element inserted, or pos if ilist is empty.
Complexity
Linear in the number of elements inserted plus the distance between pos and end()
of the container.
Exceptions
- std::bad_alloc if size() == capacity() before invocation. There are no effects then (strong exception safety guarantee).
- Any exception thrown by initialization of inserted element or by any LegacyInputIterator operation. Elements in
[
0,
pos)
are not modified.
Example
This section is incomplete Reason: no example |
See also
constructs element in-place (public member function) | |
inserts a range of elements (public member function) |