2012-12-09 121 views
1

如何用升壓庫改變優先隊列的比較功能? 我有這樣的結構:升壓優先隊列比較功能

struct decreasingOrderMyType 
{ 
    bool operator() (const MyType & lhs, const MyType & rhs) const 
    { 
     return lhs.value > rhs.value; 
    } 
}; 

,我想用它來比較我的元素。

謝謝!

+2

顯式構造函數的第一個參數是用戶指定的比較器。 –

+0

@ReubenMorais - 這應該是一個答案:)'顯式priority_queue(value_compare const&= value_compare());'' – Caribou

回答

4

有關的std :: priority_queue我把它規定爲:std::priority_queue<DistanceTuple, std::vector<DistanceTuple>, SmallestOnTop > pq;

DistanceTuplestd::pairSmallestOnTop是一個仿函數比較std::pair

更新:我錯了,它們並不相同。 boost版本使用命名參數。這樣的工作:

​​