利用C++标准库函数对数组进行排序

4 篇文章 0 订阅
18 篇文章 0 订阅

对数组进行排序,我们可以自己写排序函数,然而C++标准库中有现成的函数对数组进行排序:

例子:

#include "stdafx.h"

#include <iostream>

#include <cstdlib> //如果是C语言的话改为#include <stdlib.h>

using namespace std;

 

intcmpTest(const void*pFirst,const void*pSecond)

{

    int nA = *((int*)pFirst);

    int nB = *((int*)pSecond);

    //return (nA<nB ? -1 : nA>nB ? 1 : 0); //由小到大排序

    return (nA<nB ? 1 : nA>nB ? -1 : 0); //由大到小排序

}

int_tmain(int argc, _TCHAR* argv[])

{

    int nArray[] = {9, 10, 3, 1, 33, 9, 22, 10, 4, 30};

    cout<<"排序前的结果:"<<endl;

    for(int i=0; i<10;++i)

    {

       cout<<nArray[i]<<endl;

    }

    qsort(nArray,10,sizeof(int),cmpTest);

    //排序后的结果

    cout<<"排序后的结果:"<<endl;

    for(int i=0; i<10;++i)

    {

       cout<<nArray[i]<<endl;

    }

    return 0;

}

    此处利用的是qsort库函数,其函数原型为:

void qsort (void*base,size_t num, size_t width, int (__cdecl *compare)(const void* elem1, constvoid* elem2));

说明:第一个参数base是数组指针,第二个参数num是数组中元素的个数,第三个参数指的是数组中元素的大小,即占内存的大小;第四个参数指的是比较函数。自己定义的比较函数要符合该函数原型的定义,如返回值为int,参数1和参数2的类型为const void*。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

master_feng2009

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值