Priority Queue在Java和C ++中提供不同的输出

时间:2016-01-10 10:39:40

标签: java c++ priority-queue comparator

我不明白为什么我在C ++和Java中获得类似代码的不同结果。可能是我在某处做错了什么。我实际上想在C ++中使用自定义比较器实现优先级队列,就像在Java中实现的那样。

Java中的代码

pq: [1, 3, 5, 8, 4, 7, 6, 10, 9]

输出

#include <vector>
#include <iostream>
#include <queue>
using namespace std;

struct comp
{
    bool operator()(const int a, const int b) const
    {
         return b < a;
    }
};
int main()
{
    priority_queue<int, vector<int>, comp> pq;
    int ia[] = { 1, 10, 5, 3, 4, 7, 6, 9, 8 };
    for (int i=0;i<9;i++) 
    {
        pq.push(ia[i]);
    }
    while (!pq.empty())
    {
        std::cout << ' ' << pq.top();
        pq.pop();
    }
    return 0;
}

C ++中的代码

 1 3 4 5 6 7 8 9 10 

输出

{{1}}

0 个答案:

没有答案