比较 class 优先队列

Compare class for priority queue

当我们想要一个最小优先级队列时,我们将 Compare class 声明为 std:greater。类似于 return obj1 > obj2

谁能详细说说优先队列是怎么用的?在插入中应用它?或在 pop().

之后用于 "heapify"

我们知道在插入时,新元素会尽可能地浮起来。所以如果插入使用更大的,那么 obj1 将是父级? obj2 本身就是新元素?

我查阅了STL源代码,了解了Compare函数是如何使用的。下面是 link http://llvm.org/svn/llvm-project/libcxx/trunk/include/algorithm

关键字:push_heap、sift_up

if (Compare(parent, children))
    do the swap