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;
}