Класс concurrent_priority_queue

Класс concurrent_priority_queue — это контейнер, который позволяет нескольким потокам параллельно класть и извлекать элементы. Элементы извлекаются в порядке приоритета, определяемого функтором, предоставленным в качестве аргумента шаблона.

template <
   typename _Ty,
   typename _Compare=std::less<_Ty>,
   typename _Ax = std::allocator<_Ty>
>
, typename _Ax = std::allocator<_Ty> > class concurrent_priority_queue;

Параметры

  • _Ty
    Тип данных элементов, хранимых в очереди с приоритетом.

  • _Compare
    Тип объекта функции, который может сравнивать значения двух элементов в качестве ключей сортировки для определения относительного порядка в очереди с приоритетом. Этот аргумент является необязательным, и бинарный предикат less<_Ty**>** является значением по умолчанию.

  • _Ax
    Тип, представляющий хранимый объект распределителя, инкапсулирующий сведения о распределении и освобождении памяти для очереди с приоритетом. Этот аргумент является необязательным и значение по умолчанию — allocator<_Ty**>**.

Члены

Общедоступные Typedefs

Имя

Описание

allocator_type

Тип, представляющий класс распределителя для параллельной очереди с приоритетом.

const_reference

Тип, представляющий константную ссылку на элемент типа хранящихся в параллельной очереди с приоритетом.

reference

Тип, представляющий ссылку на элемент типа хранящихся в параллельной очереди с приоритетом.

size_type

Тип, который подсчитывает число элементов в параллельной очереди с приоритетом.

value_type

Тип, который представляет тип данных, хранящихся в параллельной очереди с приоритетом.

Открытые конструкторы

Имя

Описание

Конструктор concurrent_priority_queue::concurrent_priority_queue

Перегружен. Создает параллельную очередь с приоритетом.

Открытые методы

Имя

Описание

Метод concurrent_priority_queue::clear

Удаляет все элементы в параллельной очереди с приоритетом. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_priority_queue::empty

Проверяет, пуста ли параллельная очередь с приоритетом в момент, когда этот метод вызывается. Данный метод безопасен в режиме параллелизма.

Метод concurrent_priority_queue::get_allocator

Возвращает копию распределителя, используемого для создания параллельной очереди с приоритетом. Данный метод безопасен в режиме параллелизма.

Метод concurrent_priority_queue::push

Перегружен. Добавляет элемент в параллельную очередь с приоритетом. Данный метод безопасен в режиме параллелизма.

Метод concurrent_priority_queue::size

Возвращает число элементов, которые находятся в параллельной очереди с приоритетом. Данный метод безопасен в режиме параллелизма.

Метод concurrent_priority_queue::swap

Обмен содержимого двух параллельных очередей с приоритетом. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_priority_queue::try_pop

Удаляет и возвращает элемент наивысшего приоритета из очереди, если очередь не пуста. Данный метод безопасен в режиме параллелизма.

Открытые операторы

Имя

Описание

Оператор concurrent_priority_queue::operator=

Перегружен. Назначает содержимое другого объекта concurrent_priority_queue данному. Данный метод не безопасен в режиме параллелизма.

Заметки

Подробные сведения о классе concurrent_priority_queue содержатся в разделе Параллельные контейнеры и объекты.

Иерархия наследования

concurrent_priority_queue

Требования

Заголовок: concurrent_priority_queue.h

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

См. также

Ссылки

Пространство имен concurrency

Основные понятия

Параллельные контейнеры и объекты