priority_queue<int,vector<int>>在vector<int>这一容器类型基础上实现和priority_queue<int>区别

完全看不懂加了vector<int>有什么特别之处... 完全看不懂加了vector<int>有什么特别之处 展开
 我来答
Excalibur轩
2017-03-05 · 超过13用户采纳过TA的回答
知道答主
回答量:50
采纳率:100%
帮助的人:23.1万
展开全部
/*priority_queue<Type, Container, Functional>
若你直接用priority_queue<int>,他就用通过缺省值使用默认的方法和容器(vector),
即自顶之下,从大到小。若你需要比较其它的值,好比要比较一个pair<int, string> 
然后自顶至下是string字典序从小到大,你就需要
priority_queue<pair<int,string>,vector<pair<int, string>>, cmp>,
cmp是一个结构体,在这个结构体中重载运算符()即可。*/
struct cmp{
    bool operator()(const pair<int,string> p1, const pair<int,string> p2) {
        return p1.second > p2.second;//因为priority_queue的top相当于vector的back

    }

};
/*当然你也不一定是一定要用vector这个容器,但只是他默认是vector来实现的。*/
更多追问追答
追问
其他的我都理解,
若你直接用priority_queue,他就用通过缺省值使用默认的方法和容器(vector),
即自顶之下,从大到小。
这句话什么意思?
追答
优先队列的取数方法是top,那不就是顶了吗-.-实际上是默认的优先队列可以看成是一个最大堆,堆顶就是最大的一个数。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式