Поделиться через


Класс 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.

Определения типов

container_type

Тип, предоставляющий базовый контейнер, который будет адаптации priority_queue.

size_type

Тип целого числа без знака, которое может быть представлено число элементов в priority_queue.

value_type

Тип, который представляет тип объекта, хранящейся в виде элемента в priority_queue.

Функции-члены

empty

Если тесты priority_queue пусто.

pop

Удаляет наибольший элемент priority_queue от верхней позиции.

push

Добавляет элемент в очереди приоритета на основе приоритета элемента из оператора<.

size

Возвращает количество элементов в priority_queue.

верхний

Возвращает ссылку const к наибольшему панель инструментов в верхней части priority_queue.

Требования

Header:<queue>

Пространство имен: std

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Библиотека стандартных шаблонов