1. 程式人生 > >C++中priority_queue的比較函式過載的兩種方式

C++中priority_queue的比較函式過載的兩種方式

1.定義比較函式,以函式物件形式

    這種方式使用時,需要把函式加入priority_queue的宣告中去

 struct com{

  bool operator()( T &t1, T &t2)

    {

      if(t1.x != t2.x)

             return t1.x < t2.x -->按x降序

     return t1.y > t2.y   -->x相等時按y升序

 }

};

priority_queue<T, vector<T>, com>  que;

2.在結構體中過載<操作符(過載為友元函式)

class T{

public:

friend bool operator<(const T &t);

};

priority<T, vector<T> ...