问题描述
我已经重载了std :: greater_equal ()运算符,因此它按结构中的特定成员对我的对象进行排序。
bool operator >= (const copys& c) const {
return (relevence >= c.relevence);
}
(我什至做到了吗?)
每次都用 Invalid Comparator (无效的比较器)来打我。它曾经工作过一次,但后来我再次运行了,但没有成功。 像这样调用排序:
std::sort(objs.begin(),objs.end(),std::greater_equal<copys>());
我完全感到沮丧,任何帮助都很棒。
解决方法
std::sort
需要严格的弱排序,其中一个要求是compare(x,x) == false
(在其自身之前没有元素被排序)。由于所有std::greater_equal<Copys>()(x,x) == true
的{{1}}都不满足。
您可能想要x
(还有一个std::greater<Copys>()
)