Класс priority_queue
Класс контейнера переходники шаблона, который предоставляет ограничение функции ограничение доступа к верхнему элементу некоторого типа основного контейнера, который всегда наибольшего или с самым высоким приоритетом. Новые элементы можно добавить в 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*>less* <имя типа значение по умолчанию.
Заметки
Элементы класса Тип обусловленные в качестве первого параметра шаблона объекта очереди являются синонимами с value_type и должен соответствовать типу элемента в базовом классе контейнера Контейнер обусловленного вторым параметром шаблона. Тип Должно быть присваиваемым, поэтому будет можно скопировать объекты этого типа и присвоения значений переменным этого типа.
Priority_queue сортирует последовательность его элементы управления путем вызова, сохраненный объект функции класса Признаки. Как правило, элементы должны быть просто меньше соответствующий установить этот порядок. таким образом, чтобы данные, все 2 элемента он мог быть определен того, что они эквивалентны (в том смысле, что ни одно меньше другой) или, чтобы один меньше другой. Это приводит к тому, что порядок неравнозначными между элементами. На более технического примечания, функция сравнения бинарный предикат, который вызывает строгого слабое упорядочение в стандартном математически смысле.
Соответствующие базовые классы для контейнера priority_queue являются класс deque и класс vector по умолчанию или любой другой контейнер последовательности, который поддерживает операции front, push_back и pop_back и произвольного доступа итератора. Основной класс контейнера инкапсулированы в переходника контейнера, который предоставляет только ограниченный набор функции-члены контейнера последовательности как открытый интерфейс.
Добавление элементов на и удаления элементов из priority_queue имеют логарифмическую сложности. Доступ к элементам в priority_queue имеет постоянно сложности.
3 Типа переходник контейнера указанного STL. стека, очередь и priority_queue. Каждое ограничение функции определенного базового класса контейнера для реализации точно управляемого интерфейса стандартная структура данных.
класс stack поддерживает a " последним пришел — первым обслужен out структура данных (LIFO). Хорошим эквивалент, которых следует придерживаться была бы стекой плит. Элементы (с) могут быть введены, проверяются, или удаляются только элементов с верхней части стека, который последний элемент в конец базового контейнера. Ограничение для получения только верхний элемент причина использования класса stack.
класс queue поддерживает a " первым пришел, первым вышел " структура данных (FIFO). Хорошим эквивалент, которых следует придерживаться были бы люди выравниваясь вверх для кассира ". Элементы (пользователи) могут быть добавлены в обратно линии и удаляются из начала линии. И перед и back линии могут быть проверены. Ограничение для доступа только перед и задние таким образом элементы причина использования класса очереди.
Класс priority_queue упорядочивает элементы, чтобы наибольший элемент будет всегда в верхней позиции. Он поддерживает вставку элементов и проверки и удаление верхнего элемента. Хорошим эквивалент, которых следует придерживаться были бы люди выравниваясь вверх, где они размещаются возрастом, высотой, или другой критерием.
конструкторов;
Создает priority_queue, пусты или диапазона, копия базового объекта контейнера или другого priority_queue. |
Определения типов
Тип, предоставляющий базовый контейнер, который будет адаптации priority_queue. |
|
Тип целого числа без знака, которое может быть представлено число элементов в priority_queue. |
|
Тип, который представляет тип объекта, хранящейся в виде элемента в priority_queue. |
Функции-члены
Если тесты priority_queue пусто. |
|
Удаляет наибольший элемент priority_queue от верхней позиции. |
|
Добавляет элемент в очереди приоритета на основе приоритета элемента из оператора<. |
|
Возвращает количество элементов в priority_queue. |
|
Возвращает ссылку const к наибольшему панель инструментов в верхней части priority_queue. |
Требования
Header:<queue>
Пространство имен: std