STL priority_queue适配器使用

STL priority_queue适配器使用教程

priority_queue 适配器提供了多个构造函数用来创建 priority_queue 适配器,我们要创建一个 priority_queue 适配器有三种方式,即直接创建一个 priority_queue 适配器、使用其他容器创建一个 priority_queue 适配器和通过指定 priority_queue 适配器底层容器以及排序规则。

STL创建priority_queue适配器详解

语法

std::priority_queue<type> values;

参数

参数 描述
type priority_queue 适配器中每个元素的类型。
values priority_queue适配器类型的变量。

说明

这样,我们创建了一个空的 priority_queue 适配器,其值为 type 类型。

STL初始化priority_queue适配器详解

语法

std::priority_queue<int> my_priority_queue(values, values1);

参数

参数 描述
my_priority_queue priority_queue 适配器类型的变量。
values priority_queue 适配器的元素。

说明

这样,我们创建了一个 priority_queue 适配器。

STL使用priority_queue适配器初始化priority_queue适配器详解

语法

std::priority_queue<int, std::deque<int>, std::greater<int> >my_priority_queue(values, values+4);

参数

参数 描述
my_priority_queue priority_queue 适配器类型的变量。
values priority_queue 适配器的元素。

说明

我们在创建 priority_queue 时,指定了底层的容器和排序算法。

案例

创建priority_queue适配器

创建一个 priority_queue 适配器,并初始化

#include <iostream> #include <queue> #include <array> #include <functional> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; std::priority_queue<int, std::deque<int>, std::greater<int> >values; values.push(3); values.push(1); values.push(4); values.push(2); while (!values.empty()) { std::cout << values.top()<<" "; values.pop(); } return 0; }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ priority_queue.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

08_STL priority_queue容器适配器使用.png

我们创建了并初始化了一个 priority_queue 适配器,并且指定了底层容器类型和比较算法,最后,遍历了所有元素。

STL priority_queue适配器使用总结

priority_queue 适配器提供了多个构造函数用来创建 priority_queue 适配器,我们要创建一个 priority_queue 适配器有三种方式,即直接创建一个 priority_queue 适配器、使用其他容器创建一个 priority_queue 适配器和通过指定 priority_queue 适配器底层容器以及排序规则。