C++STL模板库适配器之优先级队列
2023-09-27 14:21:04 时间
适配器之优先级队列
一丶优先级队列简介(priority_queue)
优先级队列.不采用严格的先进先出的顺序.而是按照优先级. 给定某一时刻位于队列头的元素.
如果两个元素有相同的优先级.他们他们在队列中的顺序就是先进先出.底层是vector容器支持.可以使用deque,不能使用list.因为优先级队列要支持对元素的随机访问.便于排序.
二丶优先级队列代码演示
优先级队列方法跟队列方法一致.
1.优先级队列代码以及使用简介
优先级队列怎么说那.其实就是跟队列一样.只不过内部进行了排序.(排序是你自己制定的按照什么方式排序) 然后放到头部.
- 模板申明带3个参数:priority_queue<Type, Container, Functional>,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。
第一种方式.不指定.默认跟队列一样.先进先出.
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int> q;
q.push(7);
q.push(9);
q.push(6);
while (!q.empty()) {
cout << q.top() << endl;
q.pop();
}
system("pause");
return 0;
}
程序输出9 7 6
第二种方式. 指定排序方式,可以指定大小
#include <iostream>
#include <queue>
using namespace std;
int main()
{
// priority_queue<int,vector<int>,less<int>> q; less()比较方式按照大的优先级方式. greater是小的
priority_queue<int, vector<int>, greater<int>> q;
q.push(7);
q.push(9);
q.push(6);
while (!q.empty()) {
cout << q.top() << endl;
q.pop();
}
system("pause");
return 0;
}
程序输出 6 7 9
参考博客: 博客链接
相关文章
- C++深入浅出(七)—— 模板进阶
- C++标准模板库STL算法与自适应容器(栈和队列)
- C++ 宏和模板简介
- C++基础语法(四):C++模板
- C++STL模板库适配器之queue队列
- C++中三种正则表达式比较
- 【C++】模板总结
- C++模板的使用以及常见问题
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- 【C++】模板总结
- C++ 快速入门笔记:进阶编程
- Python/C++ OpenCV火焰检测
- C++中 #if #endif 和#ifdef #endif的用法
- 百战c++(1)
- 《挑战30天C++入门极限》图文例解C++类的多重继承与虚拟继承
- C++ - Identifier not found
- c++一些语法模板
- 用汇编的眼光看c++(之模板函数)
- 从汇编的眼光看C++(之递归函数与模板类)
- C++ 重载运算符和重载函数
- C++中常函数内部的this指针也是const类型的
- C++模板类中使用静态成员变量(例如Singleton模式)
- 50个c/c++源代码网站
- Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
- 第一个c++泛型函数(即模板)
- C++:函数重载和模板函数之间的问题 | 完美转发的概念
- C++:函数模板(1)—— 泛化版本、部分特化版本、完全特化版本
- Learning C++ No.21 【AVL树实战】
- C++ 嵌套类使用(一)
- C++模板使用介绍