This class is a value‐semantic class template, having a container of the parameterized CONTAINER type that holds elements of the parameterized VALUE type, to provide a first‐in‐first‐out queue data structure. The container object held by a queue class object is referenced as c in the following function‐level documentation.

Synopsis

Declared in <bslstl_queue.h>

template<
    class VALUE,
    class CONTAINER = deque<VALUE>>
class queue;

Type Aliases

Name

Description

const_reference

This typedef is an alias to CONTAINER::const_reference.

container_type

This typedef is an alias for the adapted container type.

reference

This typedef is an alias to CONTAINER::reference.

size_type

This typedef is an alias to CONTAINER::size_type.

value_type

This typedef is an alias to CONTAINER::value_type.

Member Functions

Name

Description

queue [constructor]

Constructors

operator=

Assignment operators

back

back overloads

emplace

Push onto this queue a newly created value_type object constructed by forwarding get_allocator() (if required) and the specified (variable number of) args to the corresponding constructor of value_type. Return a reference providing modifiable access to the inserted element.

empty

Return true if this queue object contains no elements, and false otherwise. In effect, performs return c.empty();.

front

front overloads

pop

Remove the front (the earliest pushed) element from this queue object.

push

push overloads

push_range

Push onto the back of this queue the elements of the specified range. Note that range must meet the requirements of an input range and the values from range must have a type matching or convertible to (template parameter) VALUE.

size

Return the number of elements in this queue. In effect, performs return c.size();.

swap

Efficiently exchange the value of this object with the value of the specified other object. In effect, performs using bsl::swap; swap(c, other.c);.

operator BloombergLP::bslmf::NestedTraitDeclaration<queue, UsesBslmaAllocator, BloombergLP::bslma::UsesBslmaAllocator<container_type>::value>

Declare that queue uses a bslma allocator when its container does.

Protected Data Members

Name

Description

c

Contains the elements of this queue. This member is protected and named c per the C++11 standard.

Deduction Guides

Name

Description

queue<TYPE>

Deduce the template parameter VALUE from the parameters supplied to the constructor of queue.

queue<TYPE, deque<TYPE, ALLOCATOR>>

Deduce the template parameters VALUE and CONTAINER from the parameters supplied to the constructor of queue. This deduction guide does not participate unless the ALLOCATOR parameter meets the requirements for a standard allocator.

queue<t_TYPE, deque<t_TYPE, t_ALLOCATOR>>

Deduce the template parameters VALUE and ALLOCATOR from the parameters supplied to the constructor of queue. This deduction guide does not participate unless the t_ALLOCATOR parameter meets the requirements for a standard allocator.

queue<CONTAINER::value_type, CONTAINER>

Deduce the template parameters VALUE and CONTAINER from the parameters supplied to the constructor of queue. This deduction guide does not participate if the parameter meets the requirements for a standard allocator.

queue<CONTAINER::value_type, CONTAINER>

Deduce the template parameters VALUE and CONTAINER from the parameters supplied to the constructor of queue. This deduction guide does not participate unless the supplied allocator is convertible to the underlying container's allocator_type.

queue<ranges::range_value_t<t_RANGE>>

Deduce the template parameter VALUE from the parameters supplied to the constructor of queue.

Friends

Name

Description

bsl::operator<=>

Return the three‐way comparison of the specified queues; see the non‐member operator<=> in the bsl namespace.

bsl::operator>=

Return whether the specified queues compare lexicographically; see the non‐member operator>= in the bsl namespace.

bsl::operator<=

Return whether the specified queues compare lexicographically; see the non‐member operator<= in the bsl namespace.

bsl::operator>

Return whether the specified queues compare lexicographically; see the non‐member operator> in the bsl namespace.

bsl::operator<

Return whether the specified queues compare lexicographically; see the non‐member operator< in the bsl namespace.

bsl::operator!=

Return whether the specified queues do not have the same value; see the non‐member operator!= in the bsl namespace.

bsl::operator==

Return whether the specified queues have the same value; see the non‐member operator== in the bsl namespace.

Non-Member Functions

Name

Description

operator!=

Return true if the specified lhs and rhs objects do not have the same value, and false otherwise. Two queue objects lhs and rhs do not have the same value if they do not have the same number of elements, or some element in the ordered sequence of elements of lhs does not have the same value as the corresponding element in the ordered sequence of elements of rhs. This method requires that the (template parameter) type VALUE be equality‐comparable (see {Requirements on VALUE}).

operator<

Return true if the value of the specified lhs queue is lexicographically less than that of the specified rhs queue, and false otherwise. Given iterators i and j over the respective sequences [lhs.begin() .. lhs.end())] and [rhs.begin() .. rhs.end())], the value of queue lhs is lexicographically less than that of queue rhs if true == *i < *j for the first pair of corresponding iterator positions where *i < *j and *j < *i are not both false. If no such corresponding iterator position exists, the value of lhs is lexicographically less than that of rhs if lhs.size() < rhs.size(). This method requires that operator<, inducing a total order, be defined for value_type.

operator<=

Return true if the value of the specified lhs queue is lexicographically less than or equal to that of the specified rhs queue, and false otherwise. The value of queue lhs is lexicographically less than or equal to that of queue rhs if rhs is not lexicographically less than lhs (see operator<). This method requires that operator<, inducing a total order, be defined for value_type. Note that this operator returns !(rhs < lhs).

operator<=>

Return the three‐way comparison result of the specified lhs and rhs queues by comparing their underlying containers.

operator==

Return true if the specified lhs and rhs objects have the same value, and false otherwise. Two queue objects lhs and rhs have the same value if they have the same number of elements, and each element in the ordered sequence of elements of lhs has the same value as the corresponding element in the ordered sequence of elements of rhs. This method requires that the (template parameter) type VALUE be equality‐comparable (see {Requirements on VALUE}).

operator>

Return true if the value of the specified lhs queue is lexicographically greater than that of the specified rhs queue, and false otherwise. The value of queue lhs is lexicographically greater than that of queue rhs if rhs is lexicographically less than lhs (see operator<). This method requires that operator<, inducing a total order, be defined for value_type. Note that this operator returns rhs < lhs.

operator>=

Return true if the value of the specified lhs queue is lexicographically greater than or equal to that of the specified rhs queue, and false otherwise. The value of queue lhs is lexicographically greater than or equal to that of queue rhs if lhs is not lexicographically less than rhs (see operator<). This method requires that operator<, inducing a total order, be defined for value_type. Note that this operator returns !(lhs < rhs).

swap

Swap the value of the specified lhs queue with the value of the specified rhs queue.

Created with MrDocs