c – 为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;
};
如何将此传递给我的设置数据类型的声明?我想做这样的事情:
std::set<double, EpsCompare<double>(1e-5)> myEpsSet;
这不编译,所以还能怎样做呢?
解决方法:
std::set<double, EpsCompare<> > myEpsSet(EpsCompare<>(1e-5));
要么
std::set<double, EpsCompare<double> > myEpsSet(EpsCompare<double>(1e-5));
标签:argument-passing,c,functor,stl,default-constructor 来源: https://codeday.me/bug/20190728/1562061.html