# std::queue

From cppreference.com
< cpp‎ | container

Defined in header `<queue>` |  |
template< class T, class Container = std::deque<T> > class queue; |  |

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.

### 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 `SequenceContainer`. Additionally, it must provide the following functions with the usual semantics:

- `back()`
- `front()`
- `push_back()`
- `pop_front()`

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

(constructor) | constructs the `queue` (public member function)
(destructor) | destructs the `queue` (public member function)
operator= | assigns values to the container adaptor (public member function)

##### Element access

front | access the first element (public member function)
back | access the last element (public member function)

##### Capacity

empty | checks whether the underlying container is empty (public member function)
size | returns the number of elements (public member function)

##### Modifiers

push | inserts element at the end (public member function)
emplace (C++11) | constructs element in-place at the end (public member function)
pop | removes the first element (public member function)
swap | swaps the contents (public member function)

### Member objects

Container c | the underlying container (protected member object)

### Non-member functions

operator==operator!=operator<operator<=operator>operator>= | lexicographically compares the values in the queue (function template)
std::swap(std::queue) | specializes the std::swap algorithm (function template)

### Helper classes

std::uses_allocator<std::queue> (C++11) | specializes the std::uses_allocator type trait (function template)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/container/queue&oldid=90489"