提问者:小点点

Std::Sort()C++的自定义比较函数


很多时候我不得不使用一个自定义的比较函数进行排序。 我可以实现它,但有时我会犯错误。 有人能解释一下如果它返回true会发生什么,如果它返回false会发生什么?


共2个答案

匿名用户

我经常搞不清楚如果它返回true,那么它将被交换还是不被交换?

那是无关紧要的,你也不需要知道。

唯一相关的是,当且仅当第一个参数严格小于第二个参数时,比较器才应返回true(即,它应该在排序之前,之后)。 换句话说,它应该返回与<逻辑上相同的结果。

匿名用户

自定义比较函数不交换东西,也不发出什么时候应该发生交换的信号。 这是算法的工作,你不需要担心。

自定义比较函数比较事物。 它是告诉算法哪些元素被认为“少于”其他元素的方式。 这就是它需要你告诉它的全部,为了让它走出去,做它的工作排序。

阅读文档/你的书,了解你使用的函数。 std::sort的要求可以免费学习:

comp:比较函数对象(即满足compare要求的对象),如果第一个参数小于(即在第二个参数之前排序),则返回​true

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(std|sort|c++|自定义|函数)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?