How to use deque::front and deque::back STL functions in Visual C++ (156760)



The information in this article applies to:

  • The Standard C++ Library, when used with:
    • Microsoft Visual C++, 32-bit Enterprise Edition 4.2
    • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
    • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
    • Microsoft Visual C++, 32-bit Professional Edition 4.2
    • Microsoft Visual C++, 32-bit Professional Edition 5.0
    • Microsoft Visual C++, 32-bit Professional Edition 6.0
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
    • Microsoft Visual C++ .NET (2002)
    • Microsoft Visual C++ .NET (2003)

This article was previously published under Q156760

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++.

MORE INFORMATION

Required header

   < deque>

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 <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, 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:
   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

REFERENCES

For the same topic about deque::front and deque::back, visit the following MSDN Web site: http://msdn.microsoft.com/library/en-us/vclang98/html/sample_dequeCCfront_and_dequeCCback_(STL_Sample).asp?frame=true

Modification Type:MajorLast Reviewed:7/12/2005
Keywords:kbfunctions kbhowto kbcode kbinfo KB156760 kbAudDeveloper