C++内置函数——sort 函数:实现数组的排序功能

使用该函数,只需引用头文件:

#include<algoritnm>

语法描述为: 

// 参数begin,end 表示一个范围,分别为待排序数组的首地址和尾地址

// 排列的数组中包括左边的 begin 但不包括右边的 end

sort (begin,end)

// sort (a,a+10)将把数组a按升序排序,因为sort函数默认为升序

将数组按降序排列的方法一:

 自己编写 compare 函数

// 两个分别表示待排序数组的首地址和尾地址,compare 表示比较的类型

sort (begin ,end ,compare)

代码实现 

#include<iostream>
// 使用sort函数的头文件说明
#include<algorithm>
using namespace std;
// 自己编写函数来实现升序排列
bool compare (int a,int b)
{
    // 升序排列,如果改为return a>b ,则为降序
    return a<b;
}
int main()
{
    int a[10] = {7,4,5,23,2,73,41,52,28,60},i;
    for(i=0;i<10;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    sort(a,a+10,compare);
    for(i=0;i<10;i++)
        cout<<a[i]<<" ";
    return 0;
}

将数组按降序排列方法二:

利用 functional 标准库

使用头文件 #include<functional>即可使用标准库

functional 提供了如下的基于模板的比较函数对象

  • equal_to<Type>: 等于
  • not_equal_to<Type>: 不等于
  • greater<Type>: 大于
  • greater_equal<Type>: 大于等于
  • less<Type>: 小于
  • less_equal<Type>: 小于等于 

对于这个问题来说,greater和less就足够了,可以直接拿来用

  • 升序:sort(begin,end,less<data-type>())
  • 降序:sort(begin,end,greater<data-type>())

代码实现

#include<iostream>
// 调用sort函数的头文件说明
#include<algorithm>
// 调用functional库的头文件说明
#include<functional>
using namespace std;
int main()
{
    int a[10] = {7,4,5,23,2,73,41,52,28,60},i;
    for(i=0;i<10;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    // 降序
    sort(a,a+10,greater<int>());
    for(i=0;i<10;i++)
        cout<<a[i]<<" ";
    return 0;
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值