Back to questions
Junior — Middle
89
Можете объяснить, что такое структура данных priority_queue и как она работает?
Answer from AI
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() всегда возвращает элемент с наибольшим значением.