priority_queue
时间: 2023-09-28 13:07:39 浏览: 101
c stack_和_queue用法
priority_queue是C++ STL(标准模板库)中的一个容器适配器,它作为一个队列,但是它是根据元素的优先级进行排序的。
在priority_queue中,具有最高优先级的元素始终位于队列的前面,因此每次从队列中出队的都是具有最高优先级的元素。默认情况下,priority_queue使用std :: less比较函数来确定元素的优先级,其中最小的元素具有最高的优先级。
priority_queue的常用操作包括push,pop和top。push操作将一个元素插入队列中,pop操作删除队列中具有最高优先级的元素,而top操作返回具有最高优先级的元素的引用。
以下是priority_queue的一个简单示例:
```c++
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
pq.push(10);
pq.push(30);
pq.push(20);
std::cout << "Top element: " << pq.top() << std::endl;
pq.pop();
std::cout << "Top element after pop: " << pq.top() << std::endl;
return 0;
}
```
输出:
```
Top element: 30
Top element after pop: 20
```
这个示例创建了一个priority_queue,将三个整数插入队列中,并输出队列中的最高优先级元素。然后它删除队列中的最高优先级元素并再次输出队列中的最高优先级元素。
阅读全文