1. 程式人生 > >STL小根堆的操作符過載(筆記)(小小的水一把)

STL小根堆的操作符過載(筆記)(小小的水一把)

有位博主的部落格寫的挺好的

http://www.cnblogs.com/mfryf/archive/2012/09/05/2671883.html

#include <queue>

using namespace std;


priority_queue<T>  預設為大根堆,丟擲最大元素

priority_queue<T, vector<T>, greater<T> >  改為小根堆,丟擲最小元素

個人比較喜歡的還有過載cmp,因為在堆中放置自定義型別的時候,無論大小堆都要過載一下CMP。

struct cmp

{

       bool operator() (constNode& a, const Node &b)

        {

                return a.key > b.key;     //這時是小根堆,改為小於號後為大根堆

       }                                        

}

當然還有過載運算子的方法