您的位置:首页 > 其它

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

2012-03-25 20:14 253 查看
const int N=100010;

结构体:

struct POINT{

int  x;

int  y;

};


POINT ap
;


在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函数中返回表达式,一个是用“-”,另一个是用“>”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: