priority_queue的使用
时间: 2024-02-21 20:55:31 浏览: 94
priority_queue是C++标准库中的一个容器适配器,它提供了一种基于优先级的元素访问方式。它内部使用堆数据结构来实现,保证了插入和删除操作的时间复杂度都是O(logN)。
priority_queue的使用非常简单,首先需要包含头文件<queue>,然后可以通过以下方式定义一个priority_queue对象:
```cpp
#include <queue>
std::priority_queue<int> pq; // 默认构造函数,创建一个空的priority_queue,元素类型为int
```
可以看到,priority_queue可以存储任意类型的元素,只需要在尖括号中指定元素类型即可。
接下来,可以使用以下几个常用的成员函数来操作priority_queue:
1. push(element):将元素element插入到priority_queue中。
2. pop():删除priority_queue中的顶部元素。
3. top():返回priority_queue中的顶部元素,即最大(或最小)值。
4. size():返回priority_queue中元素的个数。
5. empty():判断priority_queue是否为空。
需要注意的是,默认情况下,priority_queue是按照元素的降序进行排列的,即最大值位于顶部。如果需要按照升序排列,可以使用自定义比较函数或者重载元素类型的小于运算符。
以下是一个示例代码,演示了如何使用priority_queue:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
pq.push(10);
pq.push(30);
pq.push(20);
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
return 0;
}
```
输出结果为:30 20 10,即按照降序排列输出。
阅读全文