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


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 упорядочивает элементы его таким образом, что наибольший элемент будет всегда в верхней позиции.Он поддерживает вставку элементов и проверки и удаления верхнего элемента.Хороший аналог, которые необходимо иметь ввиду были бы продаж выравниваясь вверх, в котором они располагаются временем, высотой или другой критерием.

4ef4dae9.collapse_all(ru-ru,VS.110).gifКонструкторы

priority_queue

Создает priority_queue, пусты или диапазона, копия базового объекта-контейнера или другого priority_queue.

4ef4dae9.collapse_all(ru-ru,VS.110).gifОпределения типов

container_type

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

size_type

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

value_type

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

4ef4dae9.collapse_all(ru-ru,VS.110).gifФункции элементов

empty

Тесты, если priority_queue пустым.

pop

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

push

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

size

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

верхний

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

Требования

Header: <queue>

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

См. также

Ссылки

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

Стандартная библиотека шаблонов