priority_queue
时间: 2023-08-21 12:10:40 浏览: 93
优先队列(Priority Queue)是一种特殊的队列数据结构,其中的元素以优先级的顺序进行添加和移除。每个元素都关联有一个优先级值,较高优先级的元素被先出队列,而较低优先级的元素被后出队列。在C++中,可以使用STL(Standard Template Library)中的priority_queue类来实现优先队列。
priority_queue类模板定义在<queue>头文件中,并且可以通过使用默认的less模板参数来实现最大优先队列,或者通过指定greater模板参数来实现最小优先队列。在默认情况下,优先队列使用元素类型的比较运算符(operator<)来确定优先级。
以下是使用priority_queue类的一个简单示例:
```cpp
#include <queue>
#include <iostream>
int main() {
std::priority_queue<int> pq;
pq.push(30);
pq.push(10);
pq.push(50);
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
return 0;
}
```
运行上述代码会输出:50 30 10,说明较大的元素先出队列。
在这个示例中,我们创建了一个整数类型的优先队列pq,并向其添加了三个元素:30、10和50。然后,我们使用top()函数获取优先队列中的最高优先级元素,并使用pop()函数将其从队列中移除。最终,我们按照高优先级顺序输出了队列中的元素。
希望这个回答对你有帮助!如果你还有其他问题,请随时提问。
阅读全文