insert [C++ Reference]
Keywords: stl,deque,insert
Date: 2010-01-04T10:31:43-0800

## insert

Syntax:

        #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:

       CCCCABCDEFGHIJ

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.push_back(42);
       dq.push_front(1);
       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