排序函数sort()

排序函数 sort( )

sort(start, end, cmp);

参数的含义如下:

  1. start表示整个序列储存空间的起始地址,如果用数组a[ ]储存序列,则start参数的值就是数组名

  2. end表示整个序列储存空间结束后下一个字节的地址,如果序列(设为数组a)中记录个数为n,则end参数的值就是a+n。注意,end不是序列最后一个记录的存储地址,而是最后一个记录结束后下一个字节的地址。

接下来是sort排序的一个简单例子:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a[8] = { 5,9,2,4,1,6,3,7 };
    sort(a, a + 8);
    cout<<"result is: ";
    for (int i = 0; i < 8; i++)
        cout << a[i] << " ";
    return 0;
}

以上代码输出的结果如下:

result is: 1 2 3 4 5 6 7 9
  1. cmp参数是一个函数,其作用是制定排序时比较记录之间的大小关系的规则。如果参与排序的记录可以直接比较大小,比如基本数据类型(如int,double等),cmp参数可以不填,此时默认为从小到大排序,如果要实现从大到小排序,则cmp参数可以填greater<int>()、greater<double>()等。如果参与排序的记录是结构体类型,不能直接比较大小,则必须定义cmp函数。注意,函数名可以换成别的名字,因为它是作为sort函数的一个参数,但一般建议还是取cmp。

接下来是通过定义cmp函数来比较结构体,从而进行排序:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    struct 
    {
        
    }
    int a[8] = { 5,9,2,4,1,6,3,7 };
    sort(a, a + 8);
    cout<<"result is:";
    for (int i = 0; i < 8; i++)
        cout << a[i] << " ";
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值