c++ minheap头文件
时间: 2023-09-23 22:09:44 浏览: 162
可以使用 #include <queue> 头文件来使用 STL 中的最小堆(也称为优先队列)。在使用时,需要定义堆中元素的类型,如下所示:
```C++
#include <queue>
using namespace std;
struct Node{
int val;
Node(int x): val(x) {}
};
struct cmp{
bool operator() (Node a, Node b){
return a.val > b.val;
}
};
int main(){
priority_queue<Node, vector<Node>, cmp> minHeap;
// 使用minHeap进行最小堆操作
return 0;
}
```
以上代码使用结构体 Node 作为堆中元素的类型,使用 cmp 结构体重载 () 运算符,定义了一个按照 Node.val 的大小来比较大小的比较器。定义 priority_queue 时,需要指定堆元素类型 Node,使用 vector<Node> 实现底层容器,使用 cmp 作为比较器,实现最小堆的功能。
阅读全文