2010-07-15 74 views
1

晚上好(取決於你現在在哪裏)。 我有點困惑stl東西排序集... 我想存儲在我的設置自定義類的指針,我希望他們按我自己的 標準排序,而不僅僅是指針大小。C++:set <customClasS *如何重載operator <(const customClass&* ...)?

任何人都有一個想法如何做到這一點?因爲它不可能 做它像運算符<(const foo & * rhs,const foo & * lhs){..};

有什麼建議嗎? 在此先感謝和親切的問候。

回答

3

std::set的第二個模板參數是它用於比較的方法。所以你可以這樣做:

struct dereference_compare 
{ 
    template <typename T> 
    bool operator()(const T* pX, const T* pY) const 
    { 
     return *pX < *pY; 
    } 
}; 

typedef std::set<T*, dereference_compare> set_type; 
相關問題