list::insert (STL Samples)

Illustrates how to use the list::insert Standard Template Library (STL) function in Visual C++.

iterator insert(
   iterator It,
   const T& x = T( )
);
void insert(
   iterator It,
   size_type n,
   const T& x
);
void insert(
   iterator It,
   const_iterator First,
   const_iterator Last
);
void insert(
   iterator It,
   const T *First,
   const T *Last
);

Remarks

Note

The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability.

Each member functions inserts, before the element pointed to by it in the controlled sequence, a sequence specified by the remaining operands. The first member function inserts a single element with value x and returns an iterator that points to the newly inserted element. The second member function inserts a repetition of n elements of value x. The last two member functions insert the sequence [First, Last).

Example

// list_insert.cpp
// compile with: /EHsc
// Shows the various ways to insert elements into a
//               list<T>.

#include <list>
#include <iostream>

using namespace std ;

typedef list<int> LISTINT;

int main()
{
    int rgTest1[] = {5,6,7};
    int rgTest2[] = {10,11,12};

    LISTINT listInt;
    LISTINT listAnother;
    LISTINT::iterator i;

    // Insert one at a time
    listInt.insert (listInt.begin(), 2);
    listInt.insert (listInt.begin(), 1);
    listInt.insert (listInt.end(), 3);

    // 1 2 3
    cout << "listInt:";
    for (i = listInt.begin(); i != listInt.end(); i++)
        cout << " " << *i;
    cout << endl;

    // Insert 3 fours
    listInt.insert (listInt.end(), 3, 4);

    // 1 2 3 4 4 4
    cout << "listInt:";
    for (i = listInt.begin(); i != listInt.end(); ++i)
        cout << " " << *i;
    cout << endl;

    // Insert an array in there
    listInt.insert (listInt.end(), rgTest1, rgTest1 + 3);

    // 1 2 3 4 4 4 5 6 7
    cout << "listInt:";
    for (i = listInt.begin(); i != listInt.end(); ++i)
        cout << " " << *i;
    cout << endl;

    // Insert another LISTINT
    listAnother.insert (listAnother.begin(), rgTest2, rgTest2+3);
    listInt.insert (listInt.end(), listAnother.begin(), listAnother.end());

    // 1 2 3 4 4 4 5 6 7 10 11 12
    cout << "listInt:";
    for (i = listInt.begin(); i != listInt.end(); ++i)
        cout << " " << *i;
    cout << endl;
}

Output

listInt: 1 2 3
listInt: 1 2 3 4 4 4
listInt: 1 2 3 4 4 4 5 6 7
listInt: 1 2 3 4 4 4 5 6 7 10 11 12

Requirements

Header: <list>

See Also

Concepts

Standard Template Library Samples