Библиотека C ++ - <очередь>

Введение в очередь

Очередь - это структура данных, предназначенная для работы в контексте FIFO (First in First Out). В очереди элементы вставляются с задней стороны и удаляются с передней части.

Класс очереди - это адаптер контейнера. Контейнер - это объекты, содержащие данные одного типа. Очередь может быть создана из разных контейнеров последовательности. Адаптеры контейнера не поддерживают итераторы, поэтому мы не можем использовать их для обработки данных. Однако они поддерживают функции-члены push () и pop () для вставки и удаления данных соответственно.

Определение

Ниже приведено определение std :: queuer из заголовочного файла <queue>.

template <class T, class Container = deque<T> > class queue;

Параметры

  • T - Тип содержащегося элемента.

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

  • Container - Тип нижележащего объекта-контейнера.

Типы участников

Следующие типы членов могут использоваться как параметры или возвращаемый тип функциями-членами.

Sr. No. Типы участников Определение
1 тип ценности T (Первый параметр шаблона)
2 container_type Второй параметр шаблона
3 size_type size_t
4 Справка тип ценности&
5 const_reference const value_type &
6 разница_тип ptrdiff_t

Функции из <queue>

Ниже приведен список всех методов из заголовка <queue>.

Конструкторы

Sr. No. Метод и описание
1 queue :: queue конструктор по умолчанию

Создает пустой объект очереди с нулевыми элементами.

2 queue :: queue initialize конструктор

Создает объект очереди и назначает внутренний контейнер копией ctnr .

3 queue :: queue move конструктор

Создает очередь с содержимым other, используя семантику перемещения.

4 queue :: queue конструктор копирования

Создает очередь с копией каждого элемента, присутствующего в существующей очереди other .

Деструктор

Sr. No. Метод и описание
1 очередь :: ~ очередь

Уничтожает очередь, освобождая память контейнера.

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

Sr. No. Метод и описание
1 очередь :: назад

Возвращает ссылку на последний элемент очереди.

2 очередь :: emplace

Создает и вставляет новый элемент в конец очереди.

3 очередь :: пусто

Проверяет, пуста ли очередь.

4 queue :: front

Возвращает ссылку на первый элемент очереди.

5 queue :: operator = копировать версию

Добавляет новое содержимое в очередь, заменяя старое.

6 queue :: operator = переместить версию

Добавляет новое содержимое в очередь, заменяя старое.

7 очередь :: поп

Удаляет передний элемент очереди.

8 queue :: push copy version

Вставляет новый элемент в конец очереди.

9 queue :: push move version

Вставляет новый элемент в конец очереди.

10 очередь :: размер

Возвращает общее количество элементов, присутствующих в очереди.

11 очередь :: своп

Меняет содержимое очереди на содержимое другой очереди.

Перегруженные функции, не являющиеся членами

Sr. No. Метод и описание
1 оператор ==

Проверяет, равны ли две очереди.

2 оператор! =

Проверяет, равны ли две очереди.

3 оператор <

Проверяет, меньше ли первая очередь другой.

4 оператор <=

Проверяет, меньше ли первая очередь другой или равна ей.

5 оператор>

Проверяет, больше ли первая очередь другой.

6 оператор> =

Проверяет, больше ли первая очередь другой или равна ей.

7 замена

Меняет содержимое двух очередей.

Введение в priority_queue

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

Определение

Ниже приведено определение std :: priority_queue из заголовочного файла <queue>.

template <class T, class Container = vector<T>,
class Compare = less<typename Container::value_type> < class priority_queue;

Параметры

  • T - Тип содержащегося элемента.

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

  • Container - Тип нижележащего объекта-контейнера.

  • Compare - Объект сравнения, который будет использоваться для упорядочивания priority_queue.

    Это может быть указатель на функцию или объект функции, который может сравнивать два своих аргумента.

Типы участников

Следующие типы членов могут использоваться как параметры или возвращаемый тип функциями-членами.

Sr. No. Типы участников Определение
1 тип ценности T (Первый параметр шаблона)
2 container_type Второй параметр шаблона
3 size_type size_t
4 Справка тип ценности&
5 const_reference const value_type &
6 разница_тип ptrdiff_t

Функции из <queue>

Ниже приведен список всех методов из заголовка <queue>.

Конструкторы

Sr. No. Метод и описание
1 priority_queue :: priority_queue конструктор по умолчанию

Создает пустую priority_queue с нулевым элементом.

2 priority_queue :: priority_queue конструктор инициализации

Создает объект priority_queue и назначает внутренний контейнер копией ctnr .

3 priority_queue :: priority_queue конструктор диапазона

Создает priority_queue с таким количеством элементов в диапазоне от первого до последнего.

4 priority_queue :: priority_queue конструктор перемещения

Создает priority_queue с содержимым другого, используя семантику перемещения.

5 priority_queue :: priority_queue конструктор копирования

Создает priority_queue с копией каждого элемента, присутствующего в существующем priority_queue other.

Деструктор

Sr. No. Метод и описание
1 priority_queue :: ~ Priority_queue

Уничтожает priority_queue, освобождая память контейнера.

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

Sr. No. Метод и описание
1 priority_queue :: emplace

Создает и вставляет новый элемент в отсортированном порядке в priority_queue.

2 priority_queue :: empty

Проверяет, является ли pritority_queue пустым или нет.

3 priority_queue :: operator = скопировать версию

Добавляет новое содержимое в priority_queue, заменяя старое.

4 priority_queue :: operator = переместить версию

Добавляет новое содержимое в priority_queue, заменяя старое.

5 priority_queue :: pop

Удаляет передний элемент priority_queue.

6 priority_queue :: push- копия версии

Вставляет новый элемент в отсортированном порядке.

7 priority_queue :: push move version

Вставляет новый элемент в отсортированном порядке.

8 priority_queue :: size

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

9 priority_queue :: swap

Меняет содержимое priority_queue на содержимое другого priority_queue.

10 priority_queue :: top

Возвращает ссылку на первый элемент priority_queue

Перегруженные функции, не являющиеся членами

Sr. No. Метод и описание
1 замена

Меняет содержимое priority_queue на содержимое другого priority_queue.