2 hchchc6016 hchchc6016 于 2016.03.28 02:04 提问

sort函数的第三个参数有什么用

sort函数原先是升序排列为什么加入一个人自己定义的compare函数之后就会降序了呢?小白愚钝,希望大神讲得详细一点,不胜感激图片

4个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.28 09:48
已采纳

排序的数据类型不局限于整数,只要是定义了小于运算的类型都可以,比如字符串类string。
如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较(compare)函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。
比较时sort函数根据comp函数进行判断输的大小,系统默认ab时返回为真,那么最终得到的排序结果也相应的从小到大变成从大到小。

caozhy
caozhy   Ds   Rxr 2016.03.28 06:01

这很容易理解,对于排序函数来说,总是从小到大排序,但是你的compare函数改变了对于大小的定义,把大视作小,把小视作大,那么排序函数按照你的新的定义还是从小到大排序,实际上就是从大到小排序了。

lx624909677
lx624909677   Ds   Rxr 2016.03.28 14:08

是排序规格,比如要对一个包含ID和name的结构体对象进行按ID大小排序,这个时候就需要用到第三个参数了,也就是自己写的排序规则函数

CSDNXIAOC
CSDNXIAOC   2016.03.30 11:27

在写poj2421之前看了别人的代码,里面这段我开始不明白!!
“sort(amount,amount+counter,cmp);”
 
下面这段代码是我在别处摘抄的,希望之前不明白的朋友能仔细的看看。
 
 
 
sort的第三个参数,一直是用仿函数,没有想到用函数指针也可以!
sort的第三个参数可以用函数指针也可......
答案就在这里:sort函数中的第三个参数
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!