由买买提看人间百态

topics

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

好。
d******i
发帖数: 7160
4
来自主题: Programming版 - STL怎样同时重载()和< ?
试了,
PI5里定义的<没法作用到
这里的less
priority_queue,less> pq;
必须还要额外定义那个class cmp2传进来啊。
(共0页)