Справочник по C/C++
priority_queue

Класс priority_queue поддерживает приоритетную очередь с односторонним доступом. Спецификация его шаблона имеет следующий вид.

template <class Т, class Container = vector<T>,
class Comp = less<Container::value_type>> class priority_queue

Здесь Т - тип данных, сохраняемых в приоритетной очереди, Container - тип контейнера, используемого для реализации очереди, а класс Comp задает функцию сравнения, которая определяет, когда один член приоритетной очереди меньше другого по приоритету. Класс priority_queue имеет следующие конструкторы.

explicit priority_queue (const Comp &cmpfn = CompO, Container &cnt = Container());
template <class InIter> priority_queue(InIter start, Inlter end,
const Comp &cmpfn = Comp(), Container &cnt = Container());

Первый конструктор priority_queue() создает пустую приоритетную очередь. Второй создает приоритетную очередь, которая содержит элементы, заданные границами диапазона start и end. По умолчанию в качестве контейнера используется вектор (vector). Можно также в качестве контейнера для приоритетной очереди использовать дек (deque). Этот контейнер хранится в защищенном объекте с именем с типа Container.

Класс priority_queue содержит перечисленные ниже функции-члены.

Функция-член Назначение
bool empty() const; Возвращает true, если данная приоритетная очередь пустая, и false в противном случа
void pop(); Удаляет первый элемент в приоритетной очереди
void push(const Т &val); Добавляет в приоритетную очередь элемент, значение которого задано параметром val
size_type size() const; Возвращает текущее количество элементов в приоритетной очереди
const value_type &top() const; Возвращает ссылку на элемент с наивысшим приоритетом. Этот элемент не удаляется