微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无效的比较器与对象排序

如何解决无效的比较器与对象排序

我已经重载了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 举报,一经查实,本站将立刻删除。