##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::priority_queue

From cppreference.com
< cpp‎ | container

Defined in header `<queue>` |  |
template< class T, class Container = std::vector<T>, class Compare = std::less<typename Container::value_type> > class priority_queue; |  |

A priority queue is a container adaptor that provides constant time maximum (or minimum, depending on `Compare`) extraction at the expense of logarithmic insertion.

Working with a `priority_queue` is similar to managing a heap in some random access container, with the benefit of not being able to accidentally invalidate the heap.

### [edit] Template parameters

T | - | The type of the stored elements.
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: `front()` `push_back()` `pop_back()` The standard containers std::vector and std::deque satisfy these requirements.
Compare | - | A `Compare` type providing a strict weak ordering.

### [edit] Member types

Member type | Definition
`container_type` | `Container` [edit]
`value_type` | `Container::value_type` [edit]
`size_type` | `Container::size_type` [edit]
`reference` | `Container::reference` [edit]
`const_reference` | `Container::const_reference` [edit]

### [edit] Member functions

(constructor) | constructs the `priority_queue` (public member function) [edit]
(destructor) | destructs the `priority_queue` (public member function) [edit]
operator= | assigns values to the container adaptor (public member function) [edit]
##### Element access
top | accesses the top element (public member function) [edit]
##### Capacity
empty | checks whether the underlying container is empty (public member function) [edit]
size | returns the number of elements (public member function) [edit]
##### Modifiers
push | inserts element and sorts the underlying container (public member function) [edit]
emplace (C++11) | constructs element in-place and sorts the underlying container (public member function) [edit]
pop | removes the top element (public member function) [edit]
swap | swaps the contents (public member function) [edit]
### Member objects
Container c | the underlying container (protected member object) [edit]
Compare comp | the comparison function object (protected member object)

### [edit] Non-member functions

std::swap(std::priority_queue) | specializes the std::swap algorithm (function template) [edit]

### [edit] Helper classes

std::uses_allocator<std::priority_queue> (C++11) | specializes the std::uses_allocator type trait (function template) [edit]

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