如何通过解除引用的值对集合进行排序?

时间:2013-10-15 12:07:12

标签: c++ set

假设我有一个集合std::set<*int>,我希望元素按它们指向的整数排序,而不是指针类型;我可以在comp库中使用一些标准的std函数吗?如果没有,我将如何宣布这样的一套?

我猜我必须定义自己的比较函数,但这在实践中看起来如何?

1 个答案:

答案 0 :(得分:3)

使用Sort a std::list<myclass*> with myclass::operator<(myclass &other)中的解决方案,它是这样的:

template <typename T>
struct PComp
{
    bool operator ()(const T* a, const T* b) const
    {
       return *a < *b;
    }
};

std::set<int*, PComp<int> > my_set;