Классы контейнеров C++<queue>

В стандартной библиотеке C++<queue>Заголовочный файл предоставляет реализацию структуры данных Queue. Очередь — это структура данных First In First Out (FIFO), которая позволяет добавлять элементы с одного конца (называемого хвостом) и удалять элементы с другого конца (называемого головой).

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

  • Элементы можно добавлять только в конец очереди.
  • Элементы можно удалять только из начала очереди.

Синтаксис

В C++ синтаксис для очереди выглядит следующим образом:

#include <queue>

// 声明队列
std::queue<Type> q;

ЗдесьType— это тип данных элементов, хранящихся в очереди.

Общие операции

Очередь предоставляет следующие распространённые операции:

  • empty(): Проверить, пуста ли очередь.
  • size(): Вернуть количество элементов в очереди.
  • front(): Вернуть ссылку на первый элемент.
  • back(): Вернуть ссылку на последний элемент.
  • push(): Добавить элемент в конец очереди.
  • pop(): Удалить первый элемент.

Пример

Ниже приведён пример использования стандартной библиотеки C++<queue>Простой пример:

Пример

#include <iostream>
#include <queue>

int main() {
    // Создаём очередь целых чисел
    std::queue<int> q;

    // Добавляем элементы в очередь
    q.push(10);
    q.push(20);
    q.push(30);

    // Выводим количество элементов в очереди
    std::cout << "Количество элементов в очереди: " << q.size() << std::endl;

    // Выводим первый элемент
    std::cout << "Передний элемент: " << q.front() << std::endl;

    // Выводим последний элемент
    std::cout << "Последний элемент: " << q.back() << std::endl;

    // Удаляем первый элемент
    q.pop();
    std::cout << "После удаления первого элемента, первый элемент: " << q.front() << std::endl;

    // Снова вывести количество элементов в очереди
    std::cout << "Количество элементов в очереди: " << q.size() << std::endl;

    return 0;
}

Результат вывода:

队列中的元素数量: 3
队首元素: 10
队尾元素: 30
移除队首元素后,队首元素: 20
队列中的元素数量: 2

C++'s<queue>Стандартная библиотека предоставляет удобный способ реализации структуры данных очередь. Используя очереди, мы можем эффективно управлять коллекциями элементов, которые нужно обрабатывать в определённом порядке. Надеемся, эта статья поможет новичкам лучше понять и использовать очереди в C++.

Примечания

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