优先级队列比较——java与c++; C++中的优先级队列,我不知道如何使用优先级队列。 在C++中,我们可以这样做: priority_queue<object*, vector<object*>, compareClass> class Foo{ public: int number1; int number2 Foo(){}; }; PriorityQueue<Foo> pq = new PriorityQueue<Foo>(); class Foo implements Comparable<Foo>{ public int number1; public int number2; @Override public int compareTo(Foo other){ if(number2 != // something) return Int.compare(number, other.number); else return Int.compare(number2, other.number2); } }
我们可以使用两个不同的队列,通过两个不同的想法进行比较,只需进行两次比较 在java中,当我像这样创建队列时,我遇到了问题原因:优先级队列比较——java与c++; C++中的优先级队列,我不知道如何使用优先级队列。 在C++中,我们可以这样做: priority_queue<object*, vector<object*>, compareClass> class Foo{ public: int number1; int number2 Foo(){}; }; PriorityQueue<Foo> pq = new PriorityQueue<Foo>(); class Foo implements Comparable<Foo>{ public int number1; public int number2; @Override public int compareTo(Foo other){ if(number2 != // something) return Int.compare(number, other.number); else return Int.compare(number2, other.number2); } },java,c++,priority-queue,Java,C++,Priority Queue,我们可以使用两个不同的队列,通过两个不同的想法进行比较,只需进行两次比较 在java中,当我像这样创建队列时,我遇到了问题原因: priority_queue<object*, vector<object*>, compareClass> class Foo{ public: int number1; int number2 Foo(){}; }; PriorityQueue<Foo> pq = new PriorityQueue&
priority_queue<object*, vector<object*>, compareClass>
class Foo{
public:
int number1;
int number2
Foo(){};
};
PriorityQueue<Foo> pq = new PriorityQueue<Foo>();
class Foo implements Comparable<Foo>{
public int number1;
public int number2;
@Override
public int compareTo(Foo other){
if(number2 != // something)
return Int.compare(number, other.number);
else
return Int.compare(number2, other.number2);
}
}
PriorityQueue pq=new PriorityQueue();
我可以重写compareTo函数一次。
我知道我可以做这样的事情:
priority_queue<object*, vector<object*>, compareClass>
class Foo{
public:
int number1;
int number2
Foo(){};
};
PriorityQueue<Foo> pq = new PriorityQueue<Foo>();
class Foo implements Comparable<Foo>{
public int number1;
public int number2;
@Override
public int compareTo(Foo other){
if(number2 != // something)
return Int.compare(number, other.number);
else
return Int.compare(number2, other.number2);
}
}
类Foo实现了可比较的{
公共整数1;
公共国际号码2;
@凌驾
公共内部比较(Foo其他){
如果(数字2!=//某物)
返回Int.compare(数字、其他数字);
其他的
返回Int.compare(number2,other.number2);
}
}
在这种情况下,程序的共犯是不同的。
在java中,我能用C++做一些什么吗?< p>当你创建java <代码> PrimyReale时,使用构造函数,使用一个<代码>比较器< /> >。这允许您使用所需的任何比较逻辑,尽管可能已经为类定义了任何
compareTo
方法。No,但尝试使用类似的代码结构除外。你真的不能把C++ IDOM翻译成java。两种语言都有不同的意识形态。您应该知道Java的泛型来自C++的模板。