为什么c++中priority_queue中使用less类可以得到大根堆
时间: 2024-03-25 09:26:10 浏览: 97
C++ 中”priority_queue” 优先级队列实例详解
在C++的STL中,priority_queue默认使用less类作为比较器,即当两个元素进行比较时,如果第一个元素小于第二个元素,则返回true,否则返回false。因此,在使用less类作为比较器时,priority_queue会按照从小到大的顺序排列元素,即小的元素排在前面,大的元素排在后面。
但是,我们可以通过自定义比较器来改变priority_queue的排序方式。如果我们使用greater类作为比较器,即当两个元素进行比较时,如果第一个元素大于第二个元素,则返回true,否则返回false。这样,priority_queue会按照从大到小的顺序排列元素,即大的元素排在前面,小的元素排在后面。因此,我们可以通过使用greater类作为比较器来得到大根堆。
阅读全文