C++ 库 - <priority_queue>



C++ 的优先队列(Priority_queue) 是来自 STL 的一个容器适配器,它提供了动态优先队列数据结构。它以二叉堆的形式实现,允许高效地插入、删除和访问最高或最低优先级的元素。默认情况下,它根据比较函数按降序排列元素。优先队列通常用于 Dijkstra 最短路径算法和 Prim 最小生成树算法等算法。

语法

以下是 std::priority_queue 的语法。

template <class T, class Container = vector<T>,
class Compare = less<typename Container::value_type> < class priority_queue;

参数

  • T − 包含的元素类型。

    T 可以被任何其他数据类型替换,包括用户定义类型。

  • Container − 底层容器对象的类型。

  • Compare − 用于对 priority_queue 进行排序的比较对象。

    这可以是一个函数指针或函数对象,可以比较其两个参数。

成员类型

以下成员类型可以用作成员函数的参数或返回类型。

序号 成员类型 定义
1 value_type T(模板的第一个参数)
2 container_type 模板的第二个参数
3 size_type size_t
4 reference value_type&
5 const_reference const value_type&
6 difference_type ptrdiff_t

来自 <priority_queue> 的函数

以下是来自 <priority_queue> 的所有方法列表。

构造函数

序号 方法和描述
1 priority_queue::priority_queue 默认构造函数

构造一个具有零个元素的空优先队列。

2 priority_queue::priority_queue 初始化构造函数

构造一个 priority_queue 对象,并通过 ctnr 的副本分配内部容器。ctnr.

3 priority_queue::priority_queue 范围构造函数

构造一个优先队列,其中包含从 first 到 last 范围内的所有元素。

4 priority_queue::priority_queue 移动构造函数

使用移动语义构造具有 other 内容的 priority_queue。

5 priority_queue::priority_queue 复制构造函数

构造一个 priority_queue,其中包含现有 priority_queue other 中每个元素的副本。

析构函数

序号 方法和描述
1 priority_queue::~priority_queue

通过释放容器内存来销毁 priority_queue。

成员函数

序号 方法和描述
1 priority_queue::emplace

构造并在 priority_queue 中按排序顺序插入新元素。

2 priority_queue::empty

测试 priority_queue 是否为空。

3 priority_queue::operator=

通过替换旧内容来为 priority_queue 分配新内容。

4 priority_queue::pop

删除 priority_queue 的首元素。

5 priority_queue::push

按排序顺序插入新元素。

6 priority_queue::size

返回 priority_queue 中存在的元素总数。

7 priority_queue::swap

交换 priority_queue 的内容与另一个 priority_queue 的内容。

8 priority_queue::top

返回对 priority_queue 的第一个元素的引用。

广告
© . All rights reserved.