sort函数原先是升序排列为什么加入一个人自己定义的compare函数之后就会降序了呢?小白愚钝,希望大神讲得详细一点,不胜感激
排序的数据类型不局限于整数,只要是定义了小于运算的类型都可以,比如字符串类string。
如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较(compare)函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。
比较时sort函数根据comp函数进行判断输的大小,系统默认ab时返回为真,那么最终得到的排序结果也相应的从小到大变成从大到小。
这很容易理解,对于排序函数来说,总是从小到大排序,但是你的compare函数改变了对于大小的定义,把大视作小,把小视作大,那么排序函数按照你的新的定义还是从小到大排序,实际上就是从大到小排序了。
是排序规格,比如要对一个包含ID和name的结构体对象进行按ID大小排序,这个时候就需要用到第三个参数了,也就是自己写的排序规则函数
在写poj2421之前看了别人的代码,里面这段我开始不明白!!
“sort(amount,amount+counter,cmp);”
下面这段代码是我在别处摘抄的,希望之前不明白的朋友能仔细的看看。
sort的第三个参数,一直是用仿函数,没有想到用函数指针也可以!
sort的第三个参数可以用函数指针也可......
答案就在这里:sort函数中的第三个参数
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。