Microsoft KB Archive/156768

= How to use push_front and pop_front STL functions in Visual C++ =

Article ID: 156768

Article Last Modified on 12/29/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 Q156768

<div class="summary_section">

SUMMARY
The sample code is this article illustrates how to use the deque::push_front and deque::pop_front STL functions in Visual C++. Deque is a double-ended queue where elements can be inserted and removed from the front and from the back.

<div class="moreinformation_section">

Prototype
void push_front(const T& x); void pop_front; 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
The push_front function inserts an element with value x at the beginning of the deque container. The pop_front function removes the first element of the deque container, which must be non-empty.

Sample Code
NOTE: In the first line of the sample code section, /GX is equivalent to /EHsc in Visual C++ .NET or in Visual C++ 2005 and is set by default. //////////////////////////////////////////////////////////////////////   //    // Compile options needed: -GX //   // deque.cpp : //   // Functions: //   //    deque::push_front //   deque::pop_front //   // Written by Bobby Mattappally // of Microsoft Product Support Services, // Copyright (c) 1996 Microsoft Corporation. All rights reserved. //////////////////////////////////////////////////////////////////////

/* Compile options needed:-GX */

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

typedef deque<int, allocator > INTDEQUE; void printcontents (INTDEQUE deque);

void main {

INTDEQUE dequetest;

dequetest.push_front(1); dequetest.push_front(2); dequetest.push_front(3); printcontents (dequetest); dequetest.pop_front; printcontents (dequetest); dequetest.pop_front; printcontents (dequetest);

}

//function to print the contents of deque void printcontents (INTDEQUE deque) {      INTDEQUE::iterator pdeque;

cout <<"The output is:"<<endl;

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

} Program output is: <pre class="fixed_text">  The output is: 3  2   1   The output is: 2  1   The output is: 1

<div class="references_section">