关闭

sort和qsort函数对结构体的二级排序

标签: structc
1664人阅读 评论(0) 收藏 举报
分类:

const int N=100010;

结构体:

struct POINT{

        int  x;

        int  y;

};


POINT ap[N];

在c++中结构体不需要用struct POINT

1.qsort

头文件:stdlib

qsort函数调用时格式:

qsort(ap,n,sizeof(ap[0]),cmp);
n是比较元素的个数。

cmp函数:

                  int cmp(const void *a,const void *b)
                  {
                           POINT * p1 = (POINT*)a;
                           POINT * p2 = (POINT*)b;
                           if(p1->x != p2->x) return p1->x-p2->x;
                           return p1->y-p2->y;
                  }


2.sort

头文件:algorithm

sort函数调用时格式:

sort(ap,ap+n,cmp);
n是比较元素的个数。

cmp函数:

       

int cmp(POINT &a,POINT &b)
{
    if(a.x!=b.x) return a.x>b.x;
    return a.y>b.y;
}

记住cmp函数中返回表达式,一个是用“-”,另一个是用“>”。



1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:119798次
    • 积分:1874
    • 等级:
    • 排名:千里之外
    • 原创:60篇
    • 转载:12篇
    • 译文:0篇
    • 评论:125条
    最新评论