[Error] invalid initialization of reference of type 'std::queue<NodeType>&' from expression of type 'std::priority_queue<NodeType>'
时间: 2024-04-29 12:21:58 浏览: 153
STL中priority_queue
这个错误是由于你试图用一个 `std::priority_queue<NodeType>` 对象来初始化一个 `std::queue<NodeType>&` 的引用,这是不允许的,因为它们是不同的类型。
`std::priority_queue` 是一个优先队列,它按照元素的优先级进行排序,而 `std::queue` 是一个普通队列,它按照元素的先后顺序进行排序。
如果你想将一个 `std::priority_queue` 转换为 `std::queue`,你可以使用以下代码:
```c++
std::priority_queue<NodeType> pq;
std::queue<NodeType> q;
while (!pq.empty()) {
q.push(pq.top());
pq.pop();
}
```
这将把 `pq` 中的所有元素取出来,按照顺序放入 `q` 中。
阅读全文