c++优先队列如何访问所有的数
时间: 2024-05-03 21:19:24 浏览: 69
C++ STL中的优先队列(priority_queue)是一个基于堆的数据结构,它可以用来维护一组元素,并支持快速访问其中的最大或最小元素。默认情况下,优先队列是按照元素大小进行排序的,最大的元素排在队首。
如果要访问所有的元素,可以使用STL中的迭代器。具体地,我们可以使用while循环来依次弹出队列中的所有元素,直到队列为空为止。示例代码如下:
```c++
#include <iostream>
#include <queue>
using namespace std;
int main() {
// 定义一个优先队列
priority_queue<int> q;
// 添加元素到队列中
q.push(1);
q.push(3);
q.push(2);
// 访问所有的元素
while (!q.empty()) {
int top = q.top();
cout << top << " ";
q.pop();
}
return 0;
}
```
上述代码中,我们定义了一个优先队列 `q`,并向其中添加了三个元素。然后,我们使用一个while循环来依次弹出队列中的所有元素,并输出它们的值。输出结果为:3 2 1。
阅读全文