c++ - 模板类对象的比较器,C++

标签 c++ templates comparator

让我们用一组模板对象表示新的用户类型 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/

相关文章:

c++ - 如何在openCV C++上填充圆圈

c++ - 有没有办法在 Python 中执行 "template base class"?

javascript - Reactjs,如何将 props.location.pathname 与字符串进行比较?

Javafx 表列使用比较器排序不起作用

C++ lambda 函数 - 如何返回与目标相比最近的 vector 元素

c++ - 为什么数组的 x 和 &x 相同

c++ - 如何从 C++ 模板中的方法类型推断类类型?

c++ - 超过 1024 个客户端使用 fd_set?

C++ 模板类 : No instance of constructor matches the argument list

c++ - is_same 在将类模板实例化与其基类模板进行比较时返回 false?