libstdc++
std::queue< _Tp, _Sequence > Class Template Reference

Public Types

typedef _Sequence::const_reference const_reference
 
typedef _Sequence container_type
 
typedef _Sequence::reference reference
 
typedef _Sequence::size_type size_type
 
typedef _Sequence::value_type value_type
 

Public Member Functions

 queue (const _Sequence &__c)
 

Public Attributes

 __pad0__: c(std::move(__c)) { } template<typename _Alloc
 

Protected Attributes

_Sequence c
 

Friends

template<typename _Tp1 , typename _Seq1 >
bool operator< (const queue< _Tp1, _Seq1 > &, const queue< _Tp1, _Seq1 > &)
 
template<typename _Tp1 , typename _Seq1 >
bool operator== (const queue< _Tp1, _Seq1 > &, const queue< _Tp1, _Seq1 > &)
 

Detailed Description

template<typename _Tp, typename _Sequence = deque<_Tp>>
class std::queue< _Tp, _Sequence >

A standard container giving FIFO behavior.

Template Parameters
_TpType of element.
_SequenceType of underlying sequence, defaults to deque<_Tp>.

Meets many of the requirements of a container, but does not define anything to do with iterators. Very few of the other standard container interfaces are defined.

This is not a true container, but an adaptor. It holds another container, and provides a wrapper interface to that container. The wrapper is what enforces strict first-in-first-out queue behavior.

The second template parameter defines the type of the underlying sequence/container. It defaults to std::deque, but it can be any type that supports front, back, push_back, and pop_front, such as std::list or an appropriate user-defined type.

Members not found in normal containers are container_type, which is a typedef for the second Sequence parameter, and push and pop, which are standard queue/FIFO operations.

Definition at line 96 of file stl_queue.h.

Constructor & Destructor Documentation

template<typename _Tp, typename _Sequence = deque<_Tp>>
std::queue< _Tp, _Sequence >::queue ( const _Sequence &  __c)
inlineexplicit

Default constructor creates no elements.

Definition at line 147 of file stl_queue.h.

Member Data Documentation

template<typename _Tp, typename _Sequence = deque<_Tp>>
_Sequence std::queue< _Tp, _Sequence >::c
protected

'c' is the underlying container. Maintainers wondering why this isn't uglified as per style guidelines should note that this name is specified in the standard, [23.2.3.1]. (Why? Presumably for the same reason that it's protected instead of private: to allow derivation. But none of the other containers allow for derivation. Odd.)

Definition at line 135 of file stl_queue.h.

Referenced by std::operator==().


The documentation for this class was generated from the following file: