c++ priority用法
时间: 2023-09-08 15:12:59 浏览: 59
C++中的优先队列(priority queue)是一种特殊的容器,它可以按照一定的优先级来对元素进行排序和访问。在C++中,优先队列是通过std::priority_queue类来实现的。
下面是一个简单的示例,展示了如何使用优先队列:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
// 添加元素到优先队列
pq.push(30);
pq.push(10);
pq.push(50);
pq.push(20);
// 访问优先队列中的元素
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
return 0;
}
```
输出结果为:50 30 20 10
在上述示例中,我们首先创建了一个名为pq的优先队列。然后我们使用push()函数将一些元素添加到队列中。push()函数会根据元素的值,按照默认的降序方式将元素插入优先队列。最后,我们使用top()函数来访问队列中的最高优先级元素,并使用pop()函数将其从队列中删除。
需要注意的是,默认情况下,std::priority_queue使用std::less作为比较器,也就是说,最大的元素具有最高的优先级。如果你想要最小的元素具有最高的优先级,可以使用std::greater作为比较器:
```cpp
std::priority_queue<int, std::vector<int>, std::greater<int>> pq;
```
这样,最小的元素将具有最高的优先级。
除了基本的操作,std::priority_queue还提供了其他一些有用的成员函数,如size()、empty()等。你可以参考C++的文档或教程来了解更多关于std::priority_queue的用法和详细信息。