【发布时间】:2021-03-10 15:33:55
【问题描述】:
考虑这个例子,我想要用作比较器的公共函数较少。
附言我知道如果我将其更改为 operator< 它将起作用。
class A {
std::string str;
int id;
public:
virtual bool less(A const& rhs) const{
return id < rhs.id;
}
};
int main()
{
std::set<A, A::less> s;
}
这给了我一个错误,即 less 不是有效的模板。
任何人都可以帮我通过 lass 作为比较器吗?
如果不可能,您能否在不触及课程本身的情况下告诉我任何解决方法。
【问题讨论】:
-
为什么它首先是虚拟的?