当我们需要最小优先级队列时,我们将Compare
类声明为std:greater
。这类似于return obj1 > obj2
任何人都可以详细说明优先级队列如何使用它?插入时应用它?或者在pop()
之后将其用于“heapify”。
我们知道在插入时,新元素会尽可能地浮动。因此,如果插入使用更大,那么obj1
将是父级?而obj2
本身就是新元素?
答案 0 :(得分:1)
我查找了STL源代码并了解了如何使用Compare函数。以下是链接 http://llvm.org/svn/llvm-project/libcxx/trunk/include/algorithm
keyword:push_heap,sift_up
if (Compare(parent, children))
do the swap