Rogue Wave banner
Previous fileTop of documentContentsIndexNext file

queue


Container Adaptor

Summary

A container adaptor that behaves like a queue (first in, first out).

Data Type and Member Function Indexes
(exclusive of constructors and destructors)

Synopsis

#include <queue>
template <class T, class Container = deque<T> > 
  class queue ;

Description

The queue container adaptor lets a container act as a queue. In a queue, items are pushed into the back of the container and removed from the front. The first items pushed into the queue are the first items to be popped off of the queue (first in, first out, or "FIFO").

queue can adapt any container that supports the front(), back(), push_back(), and pop_front() operations. In particular, deque and list can be used.

Interface

template <class T, class Container = deque<T> >
 class queue {

public:

// typedefs

   typedef typename Container::value_type value_type;
   typedef typename Container::size_type size_type;
   typedef Container container_type;

// Construct/Copy/Destroy
   explicit queue (const Container& = Container());

// Accessors

   bool empty () const;
   size_type size () const;
   value_type& front ();
   const value_type& front () const;
   value_type& back ();
   const value_type& back () const;
   void push (const value_type&);
   void pop ();
};

// Non-member Operators

template <class T, class Container>
 bool operator== (const queue<T, Container>&,
                  const queue<T, Container>&);

template <class T, class Container>
 bool operator!= (const queue<T, Container>&,
                  const queue<T, Container>&);

template <class T, class Container>
 bool operator< (const queue<T, Container>&,
                 const queue<T, Container>&);

template <class T, class Container>
 bool operator> (const queue<T, Container>&,
                 const queue<T, Container>&);

template <class T, class Container>
 bool operator<= (const queue<T, Container>&,
                 const queue<T, Container>&);

template <class T, class Container>
 bool operator>= (const queue<T, Container>&,
                 const queue<T, Container>&);

Constructors

explicit queue (const Container& = Container());

Member Functions

value_type& 
back ();
const value_type& 
back() const;
bool 
empty () const;
value_type& 
front ();
const value_type& 
front () const;
void 
pop ();
void 
push (const value_type& x);
size_type 
size () const;

Non-member Operators

template <class T, class Container>
  bool operator== (const queue<T, Container>& x,
                   const queue<T, Container>& y);
template <class T, class Container>
  bool operator!= (const queue<T, Container>& x,
                   const queue<T, Container>& y);
template <class T, class Container>
  bool operator< (const queue<T, Container>& x,
                  const queue<T, Container>& y);
template <class T, class Container>
  bool operator> (const queue<T, Container>& x,
                  const queue<T, Container>& y);
template <class T, class Container>
  bool operator< (const queue<T, Container>& x,
                  const queue<T, Container>& y);
template <class T, class Container>
  bool operator< (const queue<T, Container>& x,
                  const queue<T, Container>& y);

Example

Program Output

Warnings

If your compiler does not support default template parameters, you must always include a Container template parameter. For example you would not be able to write:

queue<int> var;

rather, you would have to write,

queue<int, deque<int> > var;

If your compiler does not support namespaces, then you do not need the using declaration for std.

See Also

allocator, Containers, priority_queue



Previous fileTop of documentContentsIndexNext file
©Copyright 1998, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.
OEM Release, June 1998