priority_queue容器适配器
#include <iostream>
#include <queue>
/*
priority_queue 容器适配器(优先级队列)
// 默认排序 大->小
允许按照优先级来插入和删除元素
优先级最高的元素总是位于队首(最大值在队首)
queue 本身没有迭代器
*/
// 使用函数模板
template <typename T>
void display(std::priority_queue<T> s){
while (!s.empty()) // 不为空 则执行
{
T elem = s.top(); //读取栈顶元素
std::cout << elem << " ";
s.pop(); // 弹出栈顶元素
}
std::cout << std::endl;
};
int main()
{
std::priority_queue<int>s;
for (auto i:{3, 5, 8, 7, 9})
s.push(i); // 放入栈中
display(s);
std::cout << "大小:" << s.size() <<std::endl;
std::cout << "最大值:" << s.top() <<std::endl;
s.pop(); // 弹出最大值
display(s);
}