priority_queue容器
时间: 2023-11-06 21:07:59 浏览: 183
PriorityQueue
priority_queue是一个STL容器,它是一个优先队列,每次插入时会根据指定的比较函数自动排序,最大的元素总是排在队列的最前面,可以通过top()方法获取。
它常用于贪心算法和Dijkstra算法中,用来维护当前最小值或最大值。
priority_queue的实现是基于堆(heap)的,具体来说是一个大根堆或小根堆,大根堆的顶部元素最大,小根堆的顶部元素最小。
在C++ STL中,priority_queue定义如下:
```cpp
template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue;
```
其中 T 是元素类型,Container 是底层容器类型,默认为vector<T>,Compare 是元素的比较函数对象,默认为less<typename Container::value_type>,即小于号运算符。
阅读全文