std::list<T,Allocator>::insert (3) - Linux Manuals

std::list<T,Allocator>::insert: std::list<T,Allocator>::insert

NAME

std::list<T,Allocator>::insert - std::list<T,Allocator>::insert

Synopsis


iterator insert( iterator pos, const T& value ); (until C++11)
iterator insert( const_iterator pos, const T& value ); (since C++11)
iterator insert( const_iterator pos, T&& value ); (2) (since C++11)
void insert( iterator pos, size_type count, const T& value ); (until C++11)
iterator insert( const_iterator pos, size_type count, const T& value ); (1) (since C++11)
template< class InputIt > (until C++11)
void insert( iterator pos, InputIt first, InputIt last); (3)
template< class InputIt > (4) (since C++11)
iterator insert( const_iterator pos, InputIt first, InputIt last );
iterator insert( const_iterator pos, std::initializer_list<T> ilist ); (5) (since C++11)


Inserts elements at the specified location in the container.
1-2) inserts value before pos
3) inserts count copies of the value before pos
4) inserts elements from range [first, last) before pos.


This overload has the same effect as overload (3) if InputIt is an integral type. (until C++11)
This overload only participates in overload resolution if InputIt qualifies as LegacyInputIterator, to avoid ambiguity with the overload (3). (since C++11)


The behavior is undefined if first and last are iterators into *this.
5) inserts elements from initializer list ilist before pos.
No iterators or references are invalidated.

Parameters


pos - iterator before which the content will be inserted. pos may be the end() iterator
value - element value to insert
first, last - the range of elements to insert, can't be iterators into container for which insert is called
ilist - 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 overload (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


1-2) Constant.
3) Linear in count
4) Linear in std::distance(first, last)
5) Linear in ilist.size()

Exceptions


If an exception is thrown, there are no effects (strong exception guarantee).

See also


emplace constructs element in-place
           (public member function)
(C++11)
           inserts an element to the beginning
push_front (public member function)
           adds an element to the end
push_back (public member function)