Microsoft KB Archive/156589

= How to use the deque::insert, begin, and end STL functions in Visual C++ =

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</li></ul>

 Microsoft Visual C++ 5.0 Professional Edition</li></ul>

 Microsoft Visual C++ 6.0 Professional Edition</li></ul>

 Microsoft Visual C++ 6.0 Standard Edition</li></ul>

 Microsoft Visual C++ 2005 Express Edition</li></ul>

 Microsoft Visual C++ .NET 2003 Standard Edition</li></ul>

 Microsoft Visual C++ .NET 2002 Standard Edition</li></ul> </li></ul>

-

<div class="notice_section">

This article was previously published under Q156589

<div class="summary_section">

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

<div class="moreinformation_section">

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
 * 1) include
 * 2) include
 * 1) include

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

typedef deque<char, allocator > 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: <pre class="fixed_text">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

<div class="references_section">