C++ priority_queue的使用 & Java PriorityQueue
2024-08-31 16:03:56
刚刚那道BST的题目,也用到了priority_queue,那是那个没有定义比较函数。
那么下面这个,就要定义比较函数。
它的模板声明带有三个参数,priority_queue<Type, Container, Functional>
struct cmp{
bool operator() ( Node a, Node b ){
if( a.x== b.x ) return a.y> b.y;
return a.x> b.x; }
};
priority_queue<Node, vector<Node>, cmp> q;
或者重载比较符号,也可以:
struct Node{
int x, y;
Node( int a= 0, int b= 0 ):
x(a), y(b) {}
};
bool operator<( Node a, Node b ){
if( a.x== b.x ) return a.y> b.y;
return a.x> b.x;
}
就不需要在类型里面定义了。
或者这样定义也是能达到效果的:
struct Node{
int x, y;
Node( int a= 0, int b= 0 ):
x(a), y(b) {}
friend operator<( Node a, Node b ){
if( a.x== b.x ) return a.y> b.y;
return a.x> b.x;
}
};
http://blog.csdn.net/sraing/article/details/6256302
Java
PriorityQueue<Cell> queue = new PriorityQueue<>(1, new Comparator<Cell>(){
public int compare(Cell a, Cell b) {
return a.height - b.height;
}
});
最新文章
- Socket通信原理探讨(C++为例)
- Windows7下安装MongoDB
- no package &#39;webkit-1.0&#39; found
- Duilib将UI资源文件打包到exe教程
- 多页面打印--web print
- png图片那点事
- C# Winform 涉及的拖放操作总结
- MySql命令的基本操作
- Java设计模式学习资源汇总
- TOGAF架构开发方法(ADM)之需求管理阶段
- 采用HTML5之";data-";机制自由提供数据
- 干了这杯Java之Vector
- Mysql Index extends优化
- 【原】Java学习笔记004 - 运算符
- 指导手册05:MapReduce编程入门
- 17 利用Zabbix完成VMare监控
- quartz自定义线程数
- CentOS7下搭建LNMP记录
- Android Eclipseproject开发中的常见调试问题(二)android.os.NetworkOnMainThreadException 异常的解决的方法
- CANOpen的几种操作以及数据
热门文章
- DotNetCore.1.0.1-VS2015Tools.Preview2.0.3 相关问题及解决办法
- Dapper基础知识一
- 路飞学城Python-Day7(practise)
- django框架-DRF工程之认证功能
- LayUI加载js无效问题
- BZOJ 1190 [HNOI2007]梦幻岛宝珠(背包)
- 《Linux 进程间通信》命名管道:FIFO
- 按shift键调出命令行的脚本
- __weak修饰符
- 【BZOJ 1089】[SCOI2003]严格n元树