C++,请教一个优先权队列的问题,高手请进.

2024-12-15 10:35:08
推荐回答(1个)
回答1:

存对象还是对象的指针都行,存指针的时候,不会出现指针相同的睛况,除非你存入的指针都是指向的同一个对象变量,还有存对象开销也不是怎么大吧,其实存对象还是指针都差不多,我用stl写的一个小程序,存的是指针,没问题。是个最大优先队列。

#include
#include
#include
using namespace std;
struct node
{
int x,y;
};
class cmp
{
public:
bool operator()(node *a,node *b)
{
return a->x < b->x;
}
};

int main()
{
int x,y;
priority_queue,cmp> q;
while(cin >> x >> y && (x!=0&&y!=0))
{
node *p = new node;
p->x = x;
p->y = y;
q.push(p);
}
while(!q.empty())
{
node *p = new node;
p = q.top();
q.pop();
cout << p->x << " " << p->y << endl;
}
return 0;
}