優先佇列中過載運算子>和

_Phoenix發表於2015-08-22

先是程式碼:

struct point{  
    int x;  
    int y;  
    int times;  
    friend bool operator < (point a, point b)  
    {  
        return a.times > b.times;    //過載小於號使得小的先出佇列  
    }  
};  

在此處定義一個優先佇列priority_queue<point> q;

如果要按照以times進行從小到大排列,操作如上。

進行過載<操作符。

意思是如果a.times > b.times成立,那麼結構體point a < point b成立。由於優先佇列是按照從大到小排列,所以結構體b會排列到a之前,然而b.times是最小的,所以實現了按照times的從小到大排序。。。。

其實用一句話說就是要想b更大那麼b.times最小就好辣~~~~(>_<)~~~~說到底都是因為自己技術不到位辣=。=

相關文章