priority_queue Class
Класс основная контейнера шаблона, который предоставляет ограничение функциональных возможностей, ограничивая доступ к верхнему элементу определенного типа базового контейнера, который всегда наибольшие или наивысшим приоритетом.Новые элементы могут быть добавлены в верхний элемент priority_queue и priority_queue можно проверить или удалить.
template <
class Type,
class Container=vector<Type>,
class Compare=less<typename Container::value_type>
>
class priority_queue
Параметры
Тип
Тип данных элемента, который необходимо сохранить в priority_queue.Container
Тип базового контейнера, используемого для реализации priority_queue.Сравнение
Тип, который предоставляет объект функции, который может сравнить 2 значений элементов как ключи сортировки для определения их относительного порядка в priority_queue.Этот аргумент является необязательным и бинарный >::value_type контейнераtypename*<*less предиката значение по умолчанию.
Заметки
Элементы класса Тип обусловленные в первом параметре шаблона объекта очереди синонимны с value_type и должны соответствовать типу элемента в базовом классе Контейнер контейнера обусловленного вторым параметром шаблона.Тип Должно быть assignable, так что можно скопировать объекты этого типа и присвоения значений переменным этого типа.
Priority_queue упорядочивает последовательность, он контролирует путем вызова функции, хранимые объект класса Traits.Как правило, элементы должны быть просто меньше эквивалентно установить этот порядок. поэтому, если какие-либо 2 элемента он может быть определен этому, что они эквивалентны (в том смысле, что ни одно из значений не меньше другого) или что один меньше другого.Это приводит к тому, что упорядочение между элементами неравнозначными.На более технической заметку, функция сравнения является строгий порядок предикат, накладывают слабых в стандартном математические смысле.
Эквивалентные основные классы контейнера для priority_queue включают класс deque и по умолчанию класс вектора или любой другой контейнер последовательности, который поддерживает операции front, push_back и pop_back и итератора произвольного доступа.Базовый класс контейнера инкапсулирован в переходника контейнера, который предоставляет только ограниченный набор функций элементов контейнера последовательности, как открытый интерфейс.
Добавление элементов и удалять элементы из priority_queue содержат логарифмическую сложность.Доступ к элементам в priority_queue имеет постоянное сложность.
3 Переходник указанного типа контейнеров STL. стек, очередь и priority_queue.Каждое ограничивает возможности определенного базового класса контейнера для реализации точно управляемый интерфейс стандартная структура данных.
класс стека поддерживает a последн- в структуру данных, первая - out - первым обслужен " (LIFO).Хороший аналог, которые необходимо иметь ввиду был бы стеком плит.Элементы (плиты) могут быть вставлены или удалены, проверяются только из вершины стека, который последний элемент в конец базового контейнера.Ограничение на доступ только верхний элемент стека причина для использования класса.
класс очереди поддерживает структуры данных до пришел - первым вышел " (FIFO).Хороший аналог, которые необходимо иметь ввиду были бы продаж выравниваясь вверх, кассира bank.Элементы (sales) могут быть добавлены к линии, а затем удаляются от начала линии.Назад и front и часть линии могут быть проверены.Ограничение к получить доступ только к front и задние элементы в этом случае причина для использования класса очереди.
Класс priority_queue упорядочивает элементы его таким образом, что наибольший элемент будет всегда в верхней позиции.Он поддерживает вставку элементов и проверки и удаления верхнего элемента.Хороший аналог, которые необходимо иметь ввиду были бы продаж выравниваясь вверх, в котором они располагаются временем, высотой или другой критерием.
Конструкторы
Создает priority_queue, пусты или диапазона, копия базового объекта-контейнера или другого priority_queue. |
Определения типов
Тип, предоставляющий базовый контейнер, который будет priority_queue приспосабливаться. |
|
Тип целого числа без знака, которое может представлять число элементов в priority_queue. |
|
Тип, представляющий тип объекта, хранящийся как элемент в priority_queue. |
Функции элементов
Тесты, если priority_queue пустым. |
|
Удаляет наибольший элемент priority_queue от верхней позиции. |
|
Добавляет элемент в очереди с приоритетами на основе приоритета элемента из operator<. |
|
Возвращает количество элементов в priority_queue. |
|
Возвращает ссылку к наибольшему const элементу в верхней части priority_queue. |
Требования
Header: <queue>
std пространство имен: