永发信息网

c++里sort函数里的比较函数怎么写

答案:2  悬赏:60  手机版
解决时间 2021-02-20 17:26
源代码如下:
#include
#include
#include
//#include
using namespace std;
int main ()
{
void generate(int a[],int n);
bool cmp( int a, int b);
int a[10];
int *p;
int n,i;
p=a;
cout<<"please input n:"< cin>>n;
generate(a,n);
cout<<"the original array is:"< for(i=0;i cout< cout< sort(a[0],a[n]);
for(i=0;i cout< cout< return 0;

}
void generate(int a[],int n) //定义生成随机数函数
{
int i;
srand(unsigned(time(0)));
for(i=0;i a[i]=rand()%100;
}
(就是这个函数不会写)bool cmp( int a, int b) //定义比较函数cmp
{
return(b>a);

}
最佳答案
sort接受的是参数是指针或迭代器,sort(a[0],a[n]);你这里只是2个元素。

可以自写比较函数,也可以用标准定义好的函数对象:

#include
#include
#include
using namespace std;

bool sort_desc(int a, int b)
{
return a > b;
}
bool sort_asc(int a, int b)
{
return a < b;
}

void p(int* begin, int* end)
{
while(begin < end)
cout << *begin++ << ' ';
cout << endl;
}

int main()
{
int a[] = {6,9,1,3,5,2,7,0,4,8};

sort(a, a + 10, sort_desc);
p(a, a + 10);
sort(a, a + 10, sort_asc);
p(a, a + 10);

sort(a, a + 10, greater());
p(a, a + 10);
sort(a, a + 10, less());
p(a, a + 10);
}
全部回答
void sort( iterator start, iterator end ); void sort( iterator start, iterator end, strictweakordering cmp ); 第一个只需要传递你要排序的串(整形数组等都行)的头指针(数组第一个元素的指针)与数组最后元素的下一个位置 第二个前面两个参数同第一,但第三个参数是传递一个你定义用于排序的函数(返回比较的大小值,如strcmp或自定义的都行),因为第一个用的是默认的哈
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
从柳州到深圳沙井的汽车票要多少钱
下列措施中,能提高人口素质的是DA. 晚婚B.
求助,windows 2008 X86和X64哪一个运行速度
乐果 q16 便携插卡小音箱怎么样
周朝为什么分为东周和西周
DC5v电源用万用表怎么测量是输出5v的
福建沙县粉丝煲在什么地方啊,我要过去处理事
刚发育的小女孩能用舒耐抑汗香体露吗?
我是男生早上起床下面有一点点透明液体
长堤口怎么去啊,有知道地址的么
【no3是什么】化学中的No3-是什么意思
小车怎么画
什么地方铝型材经销商比较多
F24园区西北门在哪里啊,我有事要去这个地方
1.在数据检索时BETWEEN关键字和IN关键字的适
推荐资讯
【高岭石】高岭石和蒙脱石的晶体结构有何异同
芊盛叶创意料理我想知道这个在什么地方
780除以多少减19等于20
农历五月十六日是黄道吉日吗
谁知道这事的真实与否,关于上海艺人王菲菲的
汇丰怎么去啊,有知道地址的么
古峡东街/古峡西街(路口)地址在哪,我要去那
企业采用严格的信用标准,虽然会增加应收账款
安姓男孩后面要带天字的取什么名字好听
作文学打羽毛球得到的启示
齐祖生涯总助攻是多少?
我要鸡米是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?