d******i 发帖数: 7160 | 1 定义了个优先队列priority_queue, cmp2> pq;
cmp2的格式只能是这样:
class cmp2
{
public:
bool operator()(PI p1, PI p2)
{...
}
}
这样往队列里插入删除没问题了。
可是比较PI元素做比较时居然不work: if(pi
好像用来定义优先队列的比较器没法单独作用在元素比较上。
有没简单的办法让比较也take这个同样的比较器?
谢谢! |
|
p***o 发帖数: 1252 | 2 你要能动PI就可以在PI里定义operator<, cmp2直接用std::less或者std::greater就好。
不能动就再传个cmp2把。 |
|
d******i 发帖数: 7160 | 3 呵呵,对的,过了!
谢了啊。
不过不能动PI的话,把cmp2穿给谁呢?
好。 |
|
d******i 发帖数: 7160 | 4 试了,
PI5里定义的<没法作用到
这里的less
priority_queue,less> pq;
必须还要额外定义那个class cmp2传进来啊。 |
|