优先级队列比较——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++; 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&

我们可以使用两个不同的队列,通过两个不同的想法进行比较,只需进行两次比较

在java中,当我像这样创建队列时,我遇到了问题原因:

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++的模板。