繁体   English   中英

自定义比较 function 为 std::sort() C++

[英]Custom compare function for std::sort() C++

很多时候我必须使用自定义比较 function进行排序。 我可以实现它,但有时我会犯错误。 如果它返回true ,我通常会感到困惑,那么它是否会被交换? 有人可以解释如果它返回true会发生什么,如果它返回false会怎样?

如果它返回true ,我通常会感到困惑,那么它是否会被交换?

这无关紧要,你不需要(不需要)知道。

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

自定义比较 function 不会交换东西,也不会在应该进行交换时发出信号。 这是算法的工作,你不必担心。

自定义比较 function比较事物。 这是您告诉算法哪些元素被视为“小于”其他元素的方式。 这就是它需要你告诉它的所有内容,以便它关闭 go 并完成其工作排序。

阅读文档/您的书以了解您使用的功能。 std::sort的要求可以免费学习:

comp :比较 function object (即满足Compare要求的 object )如果第二个参数小于(即在第一个之前排序)则返回true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM