Microsoft KB Archive/156589

From BetaArchive Wiki

Article ID: 156589

Article Last Modified on 12/30/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++ 2005 Express Edition
    • Microsoft Visual C++ .NET 2003 Standard Edition
    • Microsoft Visual C++ .NET 2002 Standard Edition



This article was previously published under Q156589

SUMMARY

The sample code below illustrates how to use the deque::insert, begin, and end STL functions in Visual C++.

MORE INFORMATION

Required Header

   <deque>
                

Prototype

   iterator insert(iterator iter, const T& x = T());
   void insert(iterator iter, size_type n, const T& x);
   void insert(iterator iter, const_iterator first,const_iterator 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 these functions inserts a sequence specified by the remaining operands after the element pointed to by iter in the container. 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 third member function inserts the sequence [first, last).

Sample Code

NOTE: In the first line of the sample code section, /GX is equivalent to /EHsc in Visual C++ .NET or Visual C++ 2005 and is set by default.

////////////////////////////////////////////////////////////////////// 
// 
// Compile options needed: -GX
// 
// deque.cpp :
// 
// Functions:
// 
//    insert
//    begin
//    end
// 
// Written by Bobby Mattappally
// of Microsoft Product Support Services,
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
////////////////////////////////////////////////////////////////////// 

/* Compile options needed:-GX
*/ 
#include <iostream>
#include <deque>

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

typedef deque<char, allocator<char> >  CHARDEQUE;

void print_contents (CHARDEQUE  deque);

void main()

{

    //create a with 3 A's
    CHARDEQUE  a(3,'A');

    //create b with 2 B's.
    CHARDEQUE  b(2,'B');

    //print out the contents
    print_contents (a);
    print_contents (b);

    //insert 'X' to the beginning of a
    a.insert(a.begin(),'X');
    print_contents (a);

    //insert 'Y' to the end of a
    a.insert(a.end(),'Y');
    print_contents (a);

    //inset 3 'Z's to one item before the end of a
    a.insert(a.end()-1,3,'Z');
    print_contents (a);

    //insert to the end of a from b
    a.insert(a.end(),b.begin(),b.end());
    print_contents (a);

}

//function to print the contents of deque
void print_contents (CHARDEQUE  deque)

{

    CHARDEQUE::iterator pdeque;

    cout <<"The output is: ";

    for(pdeque = deque.begin();
        pdeque != deque.end();
        pdeque++)
    {
        cout << *pdeque <<" " ;
    }
        cout<<endl;

}
                

Program Output is:

The output is: A A A
The output is: B B
The output is: X A A A
The output is: X A A A Y
The output is: X A A A Z Z Z Y
The output is: X A A A Z Z Z Y B B
                

REFERENCES

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

For more information about deque::begin and end, visit the following MSDN Web site:


Additional query words: STL STLSample insert begin end

Keywords: kbhowto kbinfo kbcode KB156589