Namespaces
Variants
Views
Actions

std::priority_queue

From cppreference.com
< cpp‎ | container
Revision as of 02:57, 6 August 2014 by Ruediger (Talk | contribs)

 
 
 
 
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. It supports any container which provides a front(), push_back(), and pop_back() operation. In particular std::vector and std::deque.

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.

Contents

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]

Member functions

constructs the priority_queue
(public member function) [edit]
destructs the priority_queue
(public member function) [edit]
assigns values to the container adaptor
(public member function) [edit]
Element access
accesses the top element
(public member function) [edit]
Capacity
checks whether the container adaptor is empty
(public member function) [edit]
returns the number of elements
(public member function) [edit]
Modifiers
inserts element and sorts the underlying container
(public member function) [edit]
(C++11)
constructs element in-place and sorts the underlying container
(public member function) [edit]
removes the top element
(public member function) [edit]
(C++11)
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)

Non-member functions

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

Helper classes

specializes the std::uses_allocator type trait
(class template specialization) [edit]