C++ sort(a,a+n,cmp) 其中这个n是系统规定从a[0]~a[n-1]吗,我可以从a[1]~a[n]吗?

yansehh 1年前 已收到1个回答 举报

privkjl 春芽

共回答了20个问题采纳率:75% 举报

可以,改成 sort(a+1,a+n+1,cmp)就行

1年前 追问

5

yansehh 举报

里面的a+1是什么意思?

举报 privkjl

相当于从第二个开始,即a[1],不过你的数组一定要足够有a[n]这个数据,要不然会出错

yansehh 举报

恩谢谢了,可是现在被你讲了有点糊,弱弱的再问下sort的原型,可以简单一点的么,T_T

举报 privkjl

1.默认的sort函数是按升序排。 sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址 2.可以自己写一个cmp函数,按特定意图进行排序。 例如: int cmp( const int &a, const int &b ){ if( a > b ) return 1; else return 0; } sort(a,a+n,cmp); 是对数组a降序排序 又如: int cmp( const POINT &a, const POINT &b ){ if( a.x < b.x ) return 1; else if( a.x == b.x ){ if( a.y < b.y ) return 1; else return 0; } else return 0; } sort(a,a+n,cmp); 是先按x升序排序,若x值相等则按y升序排

yansehh 举报

记起来a数组地址是连贯的。。。谢谢
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.031 s. - webmaster@yulucn.com