c++ 优先队列定义小根堆
时间: 2023-11-03 10:53:54 浏览: 110
大根堆(小根堆)实现-优先队列
4星 · 用户满意度95%
在C中,优先队列默认以vector为底层容器,并采用heap处理规则来形成大根堆。如果我们需要定义小根堆,则需要使用STL自带的小根堆,即将vector改为greater<int>,作为比较函数对象的类型。下面是一个示例代码:
```cpp
#include <iostream>
#include <queue>
using namespace std;
int main() {
priority_queue<int, vector<int>, greater<int>> q;
q.push(3);
q.push(5);
q.push(1);
while (!q.empty()) {
cout << q.top() << endl;
q.pop();
}
return 0;
}
```
运行上述代码,输出结果为1 3 5,符合小根堆的特点。
阅读全文