C++)为什么priority_queue使用greater<>来升序排列?

问题描述 投票:0回答:1

为什么priority_queue使用greater<>来升序排列?

由于c++ STL中的sort()方法使用greater<>()作为第三个参数来进行降序排列 让我感到困惑的是,priority_queue 使用更大<> 来表示相反的顺序。

为什么以及如何以这种方式工作? 我不明白相同的更大结构如何根据其使用位置的不同表现出不同的行为。

sort<temp.begin(),temp.end(),greater<>()>; // -> descending order

priority_queue<int,vector<int>,greater<int>>; // -> ascending order
c++ sorting stl priority-queue
1个回答
0
投票

您对优先级队列的含义的思考是错误的。当您从优先级队列中删除某个项目时,您将删除“最高”优先级的项目。是的,优先级队列使用排序函子,但该排序函子仅表示哪个项目具有更高的优先级。

© www.soinside.com 2019 - 2024. All rights reserved.