std::deque::insert - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::deque::insert

From cppreference.com
< cpp‎ | container‎ | deque

[edit template]

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

Inserts elements at specified location in the container.

1-2) inserts `value` before the location pointed to by `pos`
3) inserts `count` copies of the `value` before the location pointed to by `pos`
4) inserts elements from range `[first, last)` before the location pointed to by `pos`. This overload does not participate in overload resolution if `InputIt` does not satisfy `InputIterator`. (since C++11) The behavior is undefined if `first` and `last` are iterators into *this.
5) inserts elements from initializer list `ilist`.

All iterators, including the past-the-end iterator, are invalidated. References are invalidated too, unless pos == begin() or pos == end(), in which case they are not invalidated.

### [edit] Parameters

pos | - | iterator to the location 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
- `InputIt` must meet the requirements of `InputIterator`.

### [edit] 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.

### [edit] Complexity

1-2) Constant plus linear in the lesser of the distances between `pos` and either of the ends of the container.
3) Linear in count plus linear in the lesser of the distances between `pos` and either of the ends of the container.
4) Linear in std::distance(first, last) plus linear in the lesser of the distances between `pos` and either of the ends of the container.
5) Linear in ilist.size() plus linear in the lesser of the distances between `pos` and either of the ends of the container.

### Exceptions

If an exception is thrown when inserting a single element at either end, this function has no effect (strong exception guarantee).

### [edit] See also

emplace (C++11) | constructs element in-place (public member function) [edit]
push_front | inserts elements to the beginning (public member function) [edit]
push_back | adds elements to the end (public member function) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/container/deque/insert&oldid=50462"