c++priorityqueue小顶堆
时间: 2023-10-29 17:57:49 浏览: 102
priority_queue是C++标准库中的一个容器适配器,它提供了对元素进行插入和删除操作的功能。默认情况下,priority_queue是大顶堆,即顶部元素是最大的。然而,你可以通过指定第三个参数less<T>来创建小顶堆,其中T是元素的类型。所以,如果你想要创建一个小顶堆的priority_queue,你可以使用以下语法:
```cpp
priority_queue<int, vector<int>, greater<int>> small_heap;
```
这将创建一个存储int类型元素的小顶堆priority_queue对象。你可以通过push()函数向小顶堆中插入元素,通过top()函数获取堆顶元素(最小值),通过pop()函数删除堆顶元素。下面是一个例子展示了如何使用小顶堆priority_queue:
```cpp
#include <iostream>
#include <queue>
using namespace std;
int main() {
priority_queue<int, vector<int>, greater<int>> q;
for (int i = 0; i < 10; i++) {
q.push(i);
}
while (!q.empty()) {
cout << q.top() << endl;
q.pop();
}
return 0;
}
```
这个例子将按照升序输出数字0到9,因为我们使用了小顶堆来存储这些数字。希望这能解答你的问题。
阅读全文