阅读量:0
在C++中,priority_queue
是一个容器适配器,它提供了一种特殊的队列,其元素可以按照优先级进行排序。默认情况下,priority_queue
的元素是按照从大到小的顺序排列的,但你也可以自定义比较函数来改变这种排序方式。
下面是一个使用priority_queue
实现优先级排序的例子:
#include<iostream> #include<queue> #include<vector> using namespace std; // 自定义比较函数,按照从小到大的顺序排列 struct Compare { bool operator()(const int &a, const int &b) { return a > b; } }; int main() { // 创建一个优先级队列,使用自定义的比较函数 priority_queue<int, vector<int>, Compare> pq; // 向优先级队列中添加元素 pq.push(5); pq.push(1); pq.push(3); pq.push(7); pq.push(2); // 从优先级队列中取出元素并打印 while (!pq.empty()) { cout << pq.top() << " "; pq.pop(); } return 0; }
输出结果:
1 2 3 5 7
在这个例子中,我们首先定义了一个自定义比较函数Compare
,它使得priority_queue
中的元素按照从小到大的顺序排列。然后,我们创建了一个priority_queue
对象,并向其中添加了一些元素。最后,我们从priority_queue
中取出元素并打印,可以看到元素已经按照优先级进行了排序。