Queue Containers
A queue<T> container implements a first-in first-out storage mechanism through an adapter. You can only add to the end of the queue or remove from the front. Here’s one way you can create a queue:
queue<string> names;
This creates a queue storing elements of type string. By default, the queue<T> adapter class uses a deque<T> container as the base, but you can specify a different sequence container as a base, as long as it supports the operations front(), back(), push_back(), and pop_front(). These four functions are used to operate the queue. Thus, a queue can be based on a list or a vector container. You specify the alternate container as a second template parameter. Here’s how you would create a queue based on a list:
queue<string, list<string>> names;
The second type parameter to the adapter template specifies the underlying sequence container that is to be used. The queue adapter class acts as a wrapper for the underlying container class and essentially restricts the range of operations you can carry out to those described in the following table.
| FUNCTION | DESCRIPTION |
| back() | Returns a reference to the element at the back of the queue. There are two versions of the function, one returning a const reference and the other returning a non-const reference. If the queue is empty, then the value returned is undefined. |
| front() | Returns a reference to the element at the front of the queue. There are two versions of the function, one returning a const reference ... |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access