晚安(取决于你现在的位置)。 我对排序集的stl东西有点困惑...... 我想在我的集合中存储自定义类的指针,我希望它们可以由我自己排序 标准,而不仅仅是指针大小。
任何人都知道如何做到这一点?既然不可能 像运算符<(const foo& * rhs,const foo& * lhs){..};
有什么建议吗? 在此先感谢并亲切的问候。
答案 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;