如何解决无效的比较器与对象排序
我已经重载了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>()
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。