[#bsl-queue-0a5] = xref:bsl.adoc[bsl]::queue :relfileprefix: ../ :mrdocs: FIFO queue adapter over a container of `VALUE` elements. == Synopsis Declared in `<bslstl_queue.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class VALUE, class CONTAINER = xref:bsl/deque-0c.adoc[deque<VALUE>]> class queue; ---- == Description 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. == Type Aliases [cols="1,4"] |=== | Name| Description | xref:bsl/queue-0a5/const_reference.adoc[`const_reference`] | This `typedef` is an alias to `CONTAINER::const_reference`. | xref:bsl/queue-0a5/container_type.adoc[`container_type`] | This `typedef` is an alias for the adapted container type. | xref:bsl/queue-0a5/reference.adoc[`reference`] | This `typedef` is an alias to `CONTAINER::reference`. | xref:bsl/queue-0a5/size_type.adoc[`size_type`] | This `typedef` is an alias to `CONTAINER::size_type`. | xref:bsl/queue-0a5/value_type.adoc[`value_type`] | This `typedef` is an alias to `CONTAINER::value_type`. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:bsl/queue-0a5/2constructor-09f.adoc[`queue`] [.small]#[constructor]# | Constructors | xref:bsl/queue-0a5/operator_assign-04.adoc[`operator=`] | Assignment operators | xref:bsl/queue-0a5/back-0d76.adoc[`back`] | `back` overloads | xref:bsl/queue-0a5/emplace.adoc[`emplace`] | Emplace a newly constructed element onto the back of this queue. | xref:bsl/queue-0a5/empty.adoc[`empty`] | Return `true` if this `queue` object contains no elements, and `false` otherwise. In effect, performs `return c.empty();`. | xref:bsl/queue-0a5/front-06.adoc[`front`] | `front` overloads | xref:bsl/queue-0a5/pop.adoc[`pop`] | Remove the front (the earliest pushed) element from this `queue` object. | xref:bsl/queue-0a5/push-0c.adoc[`push`] | `push` overloads | xref:bsl/queue-0a5/push_range.adoc[`push_range`] | Push the elements of `range` onto the back of this queue. | xref:bsl/queue-0a5/size.adoc[`size`] | Return the number of elements in this queue. In effect, performs `return c.size();`. | xref:bsl/queue-0a5/swap.adoc[`swap`] | Efficiently exchange the value of this object with `other`. | xref:bsl/queue-0a5/2conversion.adoc[`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 [cols="1,4"] |=== | Name| Description | xref:bsl/queue-0a5/c.adoc[`c`] | Contains the elements of this queue. This member is `protected` and named `c` per the C++11 standard. |=== == Deduction Guides [cols="1,4"] |=== | Name| Description | xref:bsl/queue-05.adoc[`queue<TYPE>`] | Deduce the template parameter `VALUE` from the parameters supplied to the constructor of `queue`. | xref:bsl/queue-0aa.adoc[`queue<TYPE, deque<TYPE, ALLOCATOR>>`] | Deduce `VALUE` and `CONTAINER` from iterator‐pair and allocator arguments. | xref:bsl/queue-0ad.adoc[`queue<t_TYPE, deque<t_TYPE, t_ALLOCATOR>>`] | Deduce `VALUE` and `ALLOCATOR` from range and allocator arguments. | xref:bsl/queue-09.adoc[`queue<CONTAINER::value_type, CONTAINER>`] | Deduce `VALUE` and `CONTAINER` from a container constructor argument. | xref:bsl/queue-0a3.adoc[`queue<CONTAINER::value_type, CONTAINER>`] | Deduce `VALUE` and `CONTAINER` from container and allocator arguments. | xref:bsl/queue-0c.adoc[`queue<ranges::range_value_t<t_RANGE>>`] | Deduce the template parameter `VALUE` from the parameters supplied to the constructor of `queue`. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:bsl/operator_3way-036.adoc[bsl::operator<=>]` | Return the three‐way comparison of the specified queues; see the non‐member `operator<=>` in the `bsl` namespace. | `xref:bsl/operator_ge-0c.adoc[bsl::operator>=]` | Return whether the specified queues compare lexicographically; see the non‐member `operator>=` in the `bsl` namespace. | `xref:bsl/operator_le-05.adoc[bsl::operator<=]` | Return whether the specified queues compare lexicographically; see the non‐member `operator<=` in the `bsl` namespace. | `xref:bsl/operator_gt-0b7.adoc[bsl::operator>]` | Return whether the specified queues compare lexicographically; see the non‐member `operator>` in the `bsl` namespace. | `xref:bsl/operator_lt-0e1.adoc[bsl::operator<]` | Return whether the specified queues compare lexicographically; see the non‐member `operator<` in the `bsl` namespace. | `xref:bsl/operator_not_eq-08a.adoc[bsl::operator!=]` | Return whether the specified queues do not have the same value; see the non‐member `operator!=` in the `bsl` namespace. | `xref:bsl/operator_eq-09b.adoc[bsl::operator==]` | Return whether the specified queues have the same value; see the non‐member `operator==` in the `bsl` namespace. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:bsl/operator_not_eq-0900.adoc[`operator!=`] | Return `true` if `lhs` and `rhs` do not have the same value. | xref:bsl/operator_lt-0ef.adoc[`operator<`] | Return `true` if `lhs` is lexicographically less than `rhs`. | xref:bsl/operator_le-09.adoc[`operator<=`] | Return `true` if `lhs` is lexicographically less than or equal to `rhs`. | xref:bsl/operator_3way-08d.adoc[`operator<=>`] | Return the three‐way comparison result of `lhs` and `rhs`. | xref:bsl/operator_eq-0aef.adoc[`operator==`] | Return `true` if `lhs` and `rhs` have the same value. | xref:bsl/operator_gt-09.adoc[`operator>`] | Return `true` if `lhs` is lexicographically greater than `rhs`. | xref:bsl/operator_ge-07d.adoc[`operator>=`] | Return `true` if `lhs` is lexicographically greater than or equal to `rhs`. | xref:bsl/swap-020.adoc[`swap`] | Swap the values of the specified `lhs` and `rhs` queues. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#