让我们用一组模板对象表示新的用户类型 Tlist:
template <class T>
struct TList
{
typedef std::set <Object <T>, sortByVal > TObjects;
};
必须是比较器 sortByVal 也是模板类还是非模板类的模板方法就足够了?
class sortByVal
{
public:
template <class T>
bool operator() ( const Object <T> &o1, const Object <T> &o2 ) const
{
return o1.getVal() < o2.getVal();
}
};
或
template <class T>
class sortByVal
{
public:
bool operator() ( const Object <T> &o1, const Object <T> &o2 ) const
{
return o1.getVal() < o2.getVal();
}
};
最佳答案
你可以用一种或另一种方式来做,这是一个品味问题。
然而,在第二种情况下,你应该这样使用它:
typedef std::set <Object <T>, sortByVal<T> > TObjects;
关于c++ - 模板类对象的比较器,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4569504/