c ++:set

时间:2010-07-15 20:38:37

标签: c++ stl pointers overloading operator-keyword

晚安(取决于你现在的位置)。 我对排序集的stl东西有点困惑...... 我想在我的集合中存储自定义类的指针,我希望它们可以由我自己排序 标准,而不仅仅是指针大小。

任何人都知道如何做到这一点?既然不可能 像运算符<(const foo& * rhs,const foo& * lhs){..};

有什么建议吗? 在此先感谢并亲切的问候。

1 个答案:

答案 0 :(得分: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;