priority_queue 适配器提供了多个构造函数用来创建 priority_queue 适配器,我们要创建一个 priority_queue 适配器有三种方式,即直接创建一个 priority_queue 适配器、使用其他容器创建一个 priority_queue 适配器和通过指定 priority_queue 适配器底层容器以及排序规则。
std::priority_queue<type> values;
参数 | 描述 |
---|---|
type | priority_queue 适配器中每个元素的类型。 |
values | priority_queue适配器类型的变量。 |
这样,我们创建了一个空的 priority_queue 适配器,其值为 type 类型。
std::priority_queue<int> my_priority_queue(values, values1);
参数 | 描述 |
---|---|
my_priority_queue | priority_queue 适配器类型的变量。 |
values | 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 适配器,并初始化
#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
,如下图所示:
我们创建了并初始化了一个 priority_queue 适配器,并且指定了底层容器类型和比较算法,最后,遍历了所有元素。
priority_queue 适配器提供了多个构造函数用来创建 priority_queue 适配器,我们要创建一个 priority_queue 适配器有三种方式,即直接创建一个 priority_queue 适配器、使用其他容器创建一个 priority_queue 适配器和通过指定 priority_queue 适配器底层容器以及排序规则。