java 对比函数_c++的优先队列的比较函数与Java的比较函数

package com.file;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Arrays;classSolution{privateFileInputStream fin;privateFileOutputStream fout;private bytedata[];publicboolean openFile() throws IOException {

fin=new FileInputStream("F:\\tdm-gcc.zip");

fout=new FileOutputStream("F:\\1.zip");

data=new byte[1024];while(fin.read(data)!=-1) {

fout.write(data);

data=new byte[1024];

}

fin.close();

fout.close();return true;

}

}

------------------------------------自定义比较函数----------------------------------------------------------------------class student implements Comparable{privateString name;private intage;public student(String name, intage) {

super();this.name =name;this.age =age;

}

@Overridepublic intcompareTo(student o) {if(this.age < o.age) return 1;if(this.age > o.age) return -1;return 0;

}

@OverridepublicString toString() {return "name:"+this.name+","+"age:"+this.age;

}

}classSortStudent{publicboolean Sort() {

student stu=new student("***",14);

student stu1=new student("(((",16);

student stu2=new student(")))",12);

student[]arr={stu,stu1,stu2};

Arrays.sort(arr);

System.out.println(Arrays.toString(arr));return true;

}

}public classMain {public static voidmain(String[] args) throws IOException {

SortStudent ss=newSortStudent();

ss.Sort();

}

}

-----------------------------------以一个结构体作为节点的优先队列--------------------------------------------------------------------------------

#include#include#include#include#include#include

using namespacestd;classstudent{private:stringname;intage;public:bool operatorage >obj.age;

}

student(string name, intage){this->name =name;this->age =age;

}stringGetName(){return this->name;

}

};intmain(){

student s1("****",12);

student s2("(((", 15);

student s3(")))", 14);

priority_queuepq;

pq.push(s1);

pq.push(s2);

pq.push(s3);

cout<< pq.top().GetName() <

pq.pop();

cout<< pq.top().GetName() <

pq.pop();

cout<< pq.top().GetName() <

pq.pop();

cin.get();

}

//---------------------------------补充一点在类外的比较函数的定义-------------------------------------------

#include

#include

#include

#include

using namespace std;

struct cmp

{

bool operator()(vectora,vectorb)

{

if(a[0]>b[0])return true;          //大于则交换------>小顶堆

else if(a[0]==b[0])return a[1]>b[1];

}

};

class Solution {

public:

vector> merge(vector>& intervals) {

priority_queue,vector>,cmp>queue;

for(int i=0;i

{

queue.push(intervals[i]);

}

for(int i=0;i

{

vectortemp=queue.top();

cout<

queue.pop();

}

return intervals;

}

};

int main()

{

Solution space;

vector>intervals;

vectora;

vectorb;

a.push_back(5);

a.push_back(7);

b.push_back(2);

b.push_back(3);

intervals.push_back(a);

intervals.push_back(b);

space.merge(intervals);

cout<

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值