小编urp*_*rps的帖子

为stl容器使用没有默认构造函数的仿函数

我想使用我自己的比较器std::set,需要将一个参数传递给它的构造函数:

template <class T = double> class EpsCompare {
  public:
    EpsCompare(T input_eps) : _eps(input_eps) {};
    bool operator() (const T & element1, const T & element2) const {
       return ( round(element1*_eps) < round(element2*_eps) );
    }
    T _eps;
};
Run Code Online (Sandbox Code Playgroud)

如何将此传递给我的设置数据类型的声明?我想做这样的事情:

std::set<double, EpsCompare<double>(1e-5)> myEpsSet;
Run Code Online (Sandbox Code Playgroud)

这不编译,所以还能怎样做呢?

c++ stl functor argument-passing default-constructor

3
推荐指数
1
解决办法
631
查看次数