Microsoft KB Archive/158092

From BetaArchive Wiki

Article ID: 158092

Article Last Modified on 7/14/2005



APPLIES TO

  • The Standard C++ Library, when used with:
    • Microsoft Visual C++ 4.2 Enterprise Edition
    • Microsoft Visual C++ 5.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 4.2 Professional Edition
    • Microsoft Visual C++ 5.0 Professional Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++ 6.0 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition



This article was previously published under Q158092

SUMMARY

The sample code below illustrates how to use the list::insert STL function in Visual C++.

MORE INFORMATION

Required header

   <list>
                

Prototype

   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);
                

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

Description

Each of the member functions inserts, after 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).

Sample code

   ////////////////////////////////////////////////////////////////////// 
   // 
   // Compile options needed: -GX
   // 
   // insert.cpp :  Shows the various ways to insert elements into a
   //               list<T>.
   // 
   // Functions:
   // 
   //    list::insert
   // 
   // Written by Andrew Bradnan
   // Copyright (c) 1996 Microsoft Corporation. All rights reserved.
   ////////////////////////////////////////////////////////////////////// 

   #include <list>
   #include <iostream>
   using namespace std;

#if _MSC_VER > 1020   // if VC++ version is > 4.2
   using namespace std;  // std c++ libs implemented in std
   #endif

   typedef list<int, allocator<int> > LISTINT;

   void 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
       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
       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
       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
       for (i = listInt.begin(); i != listInt.end(); ++i)
           cout << *i << " ";
       cout << endl;
   }
                

Program Output is as follows:

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

REFERENCES

For more information about list::insert, visit the following Microsoft Developer Network (MSDN) Web site:


Additional query words: STL STLSample list::insert

Keywords: kbhowto kbinfo kbstl kbcode kbfunctions KB158092