#include <deque>
    iterator insert( iterator loc, const TYPE& val );
    void insert( iterator loc, size_type num, const TYPE& val );
    template<typename input_iterator>
    void insert( iterator loc, input_iterator start, input_iterator end );

The insert() function either:

  • inserts val before loc, returning an iterator to the element inserted,
  • inserts num copies of val before loc, or
  • inserts the elements from start to end before loc.

For example:

   // Create a deque, load it with the first 10 characters of the alphabet
   deque<char> alphaDeque;
   for( int i=0; i < 10; i++ ) {
     static const char letters[] = "ABCDEFGHIJ";
     alphaDeque.push_back( letters[i] );
   // Insert four C's into the deque
   deque<char>::iterator theIterator = alphaDeque.begin();
   alphaDeque.insert( theIterator, 4, 'C' );
   // Display the deque
   for( theIterator = alphaDeque.begin(); theIterator != alphaDeque.end(); ++theIterator ) {
     cout << *theIterator;

This code would display:


This next example uses several different methods to add data to a deque, and then uses the copy algorithm to display the deque:

   deque<int> dq;
   dq.insert( dq.begin()+1, 2 );
   dq[2] = 16;
   copy( dq.begin(), dq.end(), ostream_iterator<int>(cout," ") );  // displays "1 2 16"

Related Topics: assign, erase, push_back, push_front