|
| | priority_queue ()=default |
| | 默认构造函数
|
| | priority_queue (const Compare &comp) noexcept(is_nothrow_default_constructible_v< Sequence > &&is_nothrow_copy_constructible_v< Compare >) |
| | 构造函数,指定比较函数
|
| | priority_queue (const Compare &comp, const Sequence &seq) |
| | 构造函数,指定比较函数和底层容器副本
|
| | priority_queue (const Compare &comp, Sequence &&seq) noexcept(is_nothrow_move_constructible_v< Sequence > &&is_nothrow_copy_constructible_v< Compare >) |
| | 构造函数,指定比较函数和移动的底层容器
|
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> |
| | priority_queue (Iterator first, Iterator last, const Sequence &seq) |
| | 范围构造函数,指定底层容器副本
|
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> |
| | priority_queue (Iterator first, Iterator last) |
| | 范围构造函数
|
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> |
| | priority_queue (Iterator first, Iterator last, const Compare &comp) |
| | 范围构造函数,指定比较函数
|
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> |
| | priority_queue (Iterator first, Iterator last, const Compare &comp, const Sequence &seq) |
| | 范围构造函数,指定比较函数和底层容器副本
|
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> |
| | priority_queue (Iterator first, Iterator last, const Compare &comp, Sequence &&seq) |
| | 范围构造函数,指定比较函数和移动的底层容器
|
| NEFORCE_NODISCARD bool | empty () const noexcept(noexcept(_NEFORCE declval< Sequence >().empty())) |
| | 检查优先队列是否为空
|
| NEFORCE_NODISCARD size_type | size () const noexcept(noexcept(_NEFORCE declval< Sequence >().size())) |
| | 获取优先队列大小
|
| NEFORCE_NODISCARD const_reference | top () const noexcept(noexcept(_NEFORCE declval< Sequence >().front())) |
| | 访问优先级最高的元素
|
| void | push (const value_type &value) |
| | 插入元素(拷贝版本)
|
| void | push (value_type &&value) |
| | 插入元素(移动版本)
|
| void | pop () |
| | 移除优先级最高的元素
|
| template<typename... Args> |
| void | emplace (Args &&... args) |
| | 在优先队列中就地构造元素
|
| void | swap (priority_queue &other) noexcept(is_nothrow_swappable_v< Sequence > &&is_nothrow_swappable_v< Compare >) |
| | 交换两个优先队列的内容
|
| NEFORCE_NODISCARD bool | operator== (const priority_queue &rhs) const noexcept(noexcept(pair_.value==rhs.pair_.value)) |
| | 相等比较操作符
|
| NEFORCE_NODISCARD bool | operator< (const priority_queue &rhs) const noexcept(noexcept(pair_.value< rhs.pair_.value)) |
| | 小于比较操作符
|
| NEFORCE_NODISCARD constexpr decltype(auto) | size () const noexcept(noexcept(derived().size())) |
| | 获取集合大小
|
| NEFORCE_NODISCARD constexpr bool | empty () const noexcept(noexcept(derived().empty())) |
| | 检查集合是否为空
|
| NEFORCE_NODISCARD constexpr bool | operator== (const T &rhs) const noexcept(noexcept(derived()==rhs)) |
| | 相等比较运算符
|
| NEFORCE_NODISCARD constexpr bool | operator!= (const T &rhs) const noexcept(noexcept(!(*this==rhs))) |
| | 不等比较运算符
|
| NEFORCE_NODISCARD constexpr bool | operator< (const T &rhs) const noexcept(noexcept(derived()< rhs)) |
| | 小于比较运算符
|
| NEFORCE_NODISCARD constexpr bool | operator> (const T &rhs) const noexcept(noexcept(rhs< derived())) |
| | 大于比较运算符
|
| NEFORCE_NODISCARD constexpr bool | operator<= (const T &rhs) const noexcept(noexcept(!(derived() > rhs))) |
| | 小于等于比较运算符
|
| NEFORCE_NODISCARD constexpr bool | operator>= (const T &rhs) const noexcept(noexcept(!(derived()< rhs))) |
| | 大于等于比较运算符
|
template<typename T, typename Sequence = vector<T>, typename Compare = less<typename Sequence::value_type>>
class priority_queue< T, Sequence, Compare >
优先队列容器适配器
- 模板参数
-
| T | 元素类型 |
| Sequence | 底层容器类型,默认为vector<T> |
| Compare | 比较函数对象类型,默认为less<T> |
优先队列是一种容器适配器,提供常数时间访问最大/最小元素, 对数时间插入和删除。元素按照严格弱序(strict weak ordering) 确定的优先级顺序出队。默认使用最大堆(less)实现,即top()返回最大元素。 通过指定不同的Compare可改变优先级顺序。
在文件 priority_queue.hpp 第 36 行定义.