C++ 优先级队列中比较器函数的工作
我不理解比较器函数设置的排序顺序 这是传递给优先级队列的比较器参数的代码:C++ 优先级队列中比较器函数的工作,c++,priority-queue,C++,Priority Queue,我不理解比较器函数设置的排序顺序 这是传递给优先级队列的比较器参数的代码: struct CompareHeight { bool operator()(Person const& p1, Person const& p2) { return p1.height < p2.height; } }; struct CompareHeight{ 布尔运算符()(人员常量和p1,人员常量和p2) { 返回p1.heigh
struct CompareHeight {
bool operator()(Person const& p1, Person const& p2)
{
return p1.height < p2.height;
}
};
struct CompareHeight{
布尔运算符()(人员常量和p1,人员常量和p2)
{
返回p1.height
这是以高度的降序给出输出
输出示例:65432
不应该像这样输出:2 3 4 5 6A
priority\u queue
总是以最大的元素(最高优先级)开始,例如,请参见。作为一个比较函数,问题是“第一个参数在我们的顺序中是否在第二个参数之前?”(根据)。因此,如果要按照升序对其进行排序,应该比较p1.height>p2.height
通常情况下,您的原始代码可以工作,但是,由于这是一个优先级队列,因此顺序将相反(如p1.height>p2.height
)