Библиотека 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. |