Microsoft KB Archive/156760

= How to use deque::front and deque::back STL functions in Visual C++ =

Article ID: 156760

Article Last Modified on 7/12/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++ .NET 2002 Standard Edition</li></ul>

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

-

<div class="notice_section">

This article was previously published under Q156760

<div class="notice_section">

<div class="summary_section">

SUMMARY
The sample code below illustrates how to use the deque::front and deque::back STL functions for the deque container class in Visual C++.

<div class="moreinformation_section">

Prototype
reference front; const_reference front const;

reference back; const_reference back const; 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 member function front returns a reference to the first element of the controlled sequence, which must be non-empty.

The member function back returns a reference to the last element of the controlled sequence, which must be non-empty.

Sample code
Note In the first line of the sample code section, /GX is equivalent to /EHsc in VC++ .NET and is set by default. //////////////////////////////////////////////////////////////////////   //    // Compile options needed: -GX //   // deque.cpp : //   // Functions: //   //    front //   //    back //   // 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<char, allocator > CHARDEQUE; void print_contents (CHARDEQUE deque, char*);

void main {      //create a  with  A, B, C and D       CHARDEQUE  a;       a.push_back('A'); a.push_back('B'); a.push_back('C'); a.push_back('D');

//print out the contents print_contents (a,"a");

cout <<"The first element of a is " <<a.front <<endl;

cout <<"The last element of a is " <<a.back <<endl;

//now let us modify the first and last elements //using reference ,front and back

CHARDEQUE::reference reffront=a.front; CHARDEQUE::reference refback=a.back;

reffront='X'; refback='Y';

//print out the contents print_contents (a,"a");

}

//function to print the contents of deque void print_contents (CHARDEQUE deque, char *name) {      CHARDEQUE::iterator pdeque;

cout <<"The contents of "<< name <<" : ";

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

} Program output is: <pre class="fixed_text">  The contents of a : A B C D

The first element of a is A

The last element of a is D

The contents of a : X B C Y

<div class="references_section">