Sobes.tech
Назад к вопросам
Junior — Middle
90

Можете объяснить, что такое структура данных priority_queue и как она работает?

Ответ от нейросети

sobes.tech AI

Структура данных priority_queue — это контейнер, который позволяет хранить элементы с приоритетом и быстро извлекать элемент с наивысшим приоритетом.

Как она работает:

  • Элементы вставляются в очередь с определённым приоритетом.
  • При извлечении всегда возвращается элемент с максимальным (или минимальным, в зависимости от настройки) приоритетом.

В C++ priority_queue реализована на основе кучи (heap), что обеспечивает операции вставки и извлечения за O(log n).

Пример использования в C++:

#include <iostream>
#include <queue>

int main() {
    std::priority_queue<int> pq;
    pq.push(10);
    pq.push(5);
    pq.push(20);

    while (!pq.empty()) {
        std::cout << pq.top() << " "; // Выведет: 20 10 5
        pq.pop();
    }
    return 0;
}

Здесь pq.top() всегда возвращает элемент с наибольшим значением.