priority_queue
是C++标准库中的一个容器适配器,它提供了一个优先级队列的实现。下面是使用 priority_queue
的一些基本步骤:
包含头文件:#include <queue>
定义优先级队列:std::priority_queue
std::priority_queue<int> pq; // 创建一个默认的优先级队列,默认是大顶堆
push()
函数将元素插入到优先级队列中。pq.push(5); // 将元素5插入到优先级队列中
pq.push(2); // 将元素2插入到优先级队列中
pq.push(8); // 将元素8插入到优先级队列中
top()
函数可以获取队列中的最高优先级元素。int topElement = pq.top(); // 获取队列中的最高优先级元素
pop()
函数可以删除队列中的最高优先级元素。pq.pop(); // 删除队列中的最高优先级元素
empty()
函数可以判断队列是否为空。bool isEmpty = pq.empty(); // 判断队列是否为空
需要注意的是,priority_queue
默认是一个大顶堆,即优先级高的元素会被放在队列的前面。如果想要使用小顶堆,则可以通过传递一个比较函数来实现:
std::priority_queue<int, std::vector<int>, std::greater<int>> pq; // 创建一个小顶堆
上述代码中,std::greater<int>
是一个比较函数对象,用于比较两个元素的大小。