在priority_queue中,如果要自己定义排序规则为什么只能重载<,而不能重载>呢?

在priority_queue中,如果要自己定义排序规则为什么只能重载<,而不能重载>呢?难道是约定?... 在priority_queue中,如果要自己定义排序规则为什么只能重载<,而不能重载>呢?
难道是约定?
展开
 我来答
Irreappearable
2010-01-25 · TA获得超过4956个赞
知道大有可为答主
回答量:1423
采纳率:25%
帮助的人:3133万
展开全部
stl中有关排序的容器类都有一个表示排序规则的对象的,优先队列的定义大致是这样的:
template<typename _Tp, typename _Sequence = vector<_Tp>, typename _Compare = less<typename _Sequence::value_type> > class priority_queue { …… };
其中模板类型的一个参数_Tp是容器装的类型,第二个是他包装的类型,和这个问题无关,第三个_Compare就是比较器,默认是std::less,也就是小于号,你完全可以传一个自定义的对象进去,当然也可以用stl帮你定义好的,比如greater, 像下面这样写的话,整个排序就倒过来了,因为用的是大于号
priority_queue<int, vector<int>, std::greater<int> > q;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式