ACM 模板 c++ STL 队列 queue 优先队列
来源:互联网 发布:淘宝闲鱼能小二介入 编辑:程序博客网 时间:2024/06/10 16:29
转载来源:http://blog.csdn.net/baochunzhi/article/details/7664422
STL 中优先队列的使用方法(priority_queue)
基本操作:
empty() 如果队列为空返回真
pop() 删除对顶元素
push() 加入一个元素
size() 返回优先队列中拥有的元素个数
top() 返回优先队列对顶元素 //而queue是front
在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。
使用方法:
头文件:
#include <queue>
声明方式:
1、普通方法:
priority_queue<int>q;
//通过操作,按照元素从大到小的顺序出队
2、自定义优先级:
struct cmp
{
bool operator ()(int x, int y)
{
return x > y; // x小的优先级高
//也可以写成其他方式,如: return p[x] > p[y];表示p[i]小的优先级高
}
};
priority_queue<int, vector<int>, cmp>q;//定义方法
//其中,第二个参数为容器类型。第三个参数为比较函数。
priority_queue<long long,vector<long long>,greater<long long> > q; //greater函数,大的在前面;less<long long>小的优先
sort(a,a+n,greater<int>()); //从大到小排序
priority_queue<long long,vector<long long>,greater<long long> > q; //greater函数,大的在前面;less<long long>小的优先
sort(a,a+n,greater<int>()); //从大到小排序
3、结构体声明方式:
struct node
{
int x, y;
friend bool operator < (node a, node b)
{
return a.x > b.x; //结构体中,x小的优先级高(不是小于号)
}
};
priority_queue<node>q;//定义方法
//在该结构中,y为值, x为优先级。
//通过自定义operator<操作符来比较元素中的优先级。
//在重载”<”时,最好不要重载”>”,可能会发生编译错误
STL 中队列的使用(queue)
基本操作:
push(x) 将x压入队列的末端
pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值
front() 返回第一个元素(队顶元素)
back() 返回最后被压入的元素(队尾元素)
empty() 当队列为空时,返回true
size() 返回队列的长度
使用方法:
头文件:
#include <queue>
声明方法:
1、普通声明
queue<int>q;
2、结构体
struct node
{
int x, y;
};
queue<node>q;
0 0
- ACM 模板 c++ STL 队列 queue 优先队列
- 优先队列stl 模板
- STL-优先队列(priority queue)
- STL模板库优先队列
- ZOJ2724_Windows Message Queue(STL/优先队列)
- STL之stack,queue,优先队列
- STL之stack,queue,优先队列
- Windows Message Queue(STL优先队列)
- STL之优先队列priority queue
- C++STL中的标准模板——优先队列
- 【数据结构】【C++STL】FIFO队列&优先队列
- C++STL之优先队列
- C++STL优先队列小结
- 哈夫曼树 --- 优先队列(C++STL)
- C++STL优先队列使用
- STL 之 stack&queue&priority_queue 栈,队列与优先队列
- STL queue队列容器和priority_queue优先队列容器
- STL之栈stack,队列queue以及优先队列
- 大数据设计的主要技术
- MONGODB 集群 配置及 客户端PHP 连接
- Xtrabackup备份恢复常用命令与压缩测试
- Block in iOS (1)
- Accepting Un-Trusted Certificates Using The IOS Simulator
- ACM 模板 c++ STL 队列 queue 优先队列
- Advertising Identifier审核被拒终极解决方法
- java实现字符串转化为整数
- 可变参数函数定义要点
- eclipse构建Maven项目 (step-by-step)
- 安装Oracle EM 11g Fusion Middleware Control
- Android 读取文件头判断文件类型
- linux分区方案
- Android GridView属性集合