刚刚那道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;
}
});

最新文章

  1. Socket通信原理探讨(C++为例)
  2. Windows7下安装MongoDB
  3. no package &#39;webkit-1.0&#39; found
  4. Duilib将UI资源文件打包到exe教程
  5. 多页面打印--web print
  6. png图片那点事
  7. C# Winform 涉及的拖放操作总结
  8. MySql命令的基本操作
  9. Java设计模式学习资源汇总
  10. TOGAF架构开发方法(ADM)之需求管理阶段
  11. 采用HTML5之&quot;data-&quot;机制自由提供数据
  12. 干了这杯Java之Vector
  13. Mysql Index extends优化
  14. 【原】Java学习笔记004 - 运算符
  15. 指导手册05:MapReduce编程入门
  16. 17 利用Zabbix完成VMare监控
  17. quartz自定义线程数
  18. CentOS7下搭建LNMP记录
  19. Android Eclipseproject开发中的常见调试问题(二)android.os.NetworkOnMainThreadException 异常的解决的方法
  20. CANOpen的几种操作以及数据

热门文章

  1. DotNetCore.1.0.1-VS2015Tools.Preview2.0.3 相关问题及解决办法
  2. Dapper基础知识一
  3. 路飞学城Python-Day7(practise)
  4. django框架-DRF工程之认证功能
  5. LayUI加载js无效问题
  6. BZOJ 1190 [HNOI2007]梦幻岛宝珠(背包)
  7. 《Linux 进程间通信》命名管道:FIFO
  8. 按shift键调出命令行的脚本
  9. __weak修饰符
  10. 【BZOJ 1089】[SCOI2003]严格n元树