Difference between revisions of "cpp/container/queue"
From cppreference.com
m (rvv) |
|||
Line 6: | Line 6: | ||
class Container {{=}} std::deque<T> | class Container {{=}} std::deque<T> | ||
> class queue; | > class queue; | ||
− | }} | + | }} |
The {{tt|std::queue}} class is a container adapter that gives the programmer the functionality of a queue - specifically, a FIFO (first-in, first-out) data structure. | The {{tt|std::queue}} class is a container adapter that gives the programmer the functionality of a queue - specifically, a FIFO (first-in, first-out) data structure. | ||
− | The class template acts as a wrapper to the underlying container - only a specific set of functions is provided. The queue pushes the elements on the back of the underlying container and pops them from the front. | + | The class template acts as a wrapper to the underlying container - only a specific set of functions is provided. The queue pushes the elements on the back of the underlying container and pops them from the front. |
===Template parameters=== | ===Template parameters=== | ||
− | {{par begin}} | + | {{par begin}} |
− | {{par | T | The type of the stored elements.}} | + | {{par | T | The type of the stored elements. {{rev inl|since=c++17|The behavior is undefined if {{tt|T}} is not the same type as {{tt|Container::value_type}}.}} }} |
{{par | Container | The type of the underlying container to use to store the elements. The container must satisfy the requirements of {{concept|SequenceContainer}}. Additionally, it must provide the following functions with the usual semantics: | {{par | Container | The type of the underlying container to use to store the elements. The container must satisfy the requirements of {{concept|SequenceContainer}}. Additionally, it must provide the following functions with the usual semantics: | ||
− | * {{tt|back()}} | + | * {{tt|back()}} |
− | * {{tt|front()}} | + | * {{tt|front()}} |
− | * {{tt|push_back()}} | + | * {{tt|push_back()}} |
* {{tt|pop_front()}} | * {{tt|pop_front()}} | ||
Revision as of 13:16, 25 February 2017
Defined in header <queue>
|
||
template< class T, |
||
The std::queue
class is a container adapter that gives the programmer the functionality of a queue - specifically, a FIFO (first-in, first-out) data structure.
The class template acts as a wrapper to the underlying container - only a specific set of functions is provided. The queue pushes the elements on the back of the underlying container and pops them from the front.
Contents |
Template parameters
T | - | The type of the stored elements. The behavior is undefined if T is not the same type as Container::value_type .(since C++17)
|
Container | - | The type of the underlying container to use to store the elements. The container must satisfy the requirements of Template:concept. Additionally, it must provide the following functions with the usual semantics:
The standard containers std::deque and std::list satisfy these requirements. |
Member types
Member type | Definition |
container_type
|
Container
|
value_type
|
Container::value_type
|
size_type
|
Container::size_type |
reference
|
Container::reference
|
const_reference
|
Container::const_reference
|
Member functions
constructs the queue (public member function) | |
destructs the queue (public member function) | |
assigns values to the container adaptor (public member function) | |
Element access | |
access the first element (public member function) | |
access the last element (public member function) | |
Capacity | |
checks whether the container adaptor is empty (public member function) | |
returns the number of elements (public member function) | |
Modifiers | |
inserts element at the end (public member function) | |
(C++11) |
constructs element in-place at the end (public member function) |
removes the first element (public member function) | |
(C++11) |
swaps the contents (public member function) |
Member objects | |
Container c |
the underlying container (protected member object) |
Non-member functions
lexicographically compares the values of two queue s (function template) | |
(C++11) |
specializes the std::swap algorithm (function template) |
Helper classes
specializes the std::uses_allocator type trait (class template specialization) |