网站大量收购独家精品文档,联系QQ:2885784924

C++(day08)C++实务精选罕见资源大集合.docx

C++(day08)C++实务精选罕见资源大集合.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++笔记 2007 年 4 月 2 日 1、排序函数 void order(int* p1, int* p2){ if(*p1 *p2){ int temp = *p1; *p1 = *p2; *p2 = temp; } } void sort (int *p , int len , int perLen , void (*pOrder)(void* , void*)){ char* pt = (char*)p; for(int i = 0 ; i len ; i++){ for(int j = i ; j len ; i ++){ pOrder(pt+i*perLen , pt+j*perLen); } } } 将输入参数int* - void* (void* 可以存储任何类型的地址,可以通用 ) 表示数组的第i 个元素,事先要知道数组每个元素的大小(参数传入) i*perLen = 当不知道指针类型时,表示走一步,应越过的字节数p+i*perLen = 表示第i 个元素的地址 具体的数组要有具体的排序方法 调用函数,当不知道函数名时,可以通过函数指针调用 ================================================== sort.h ================================================== void sort( void * p , int len , int perLen , void (*pOrder)(void * , void * ) ); ================================================== sort.cc ================================================== void sort( void * p , int len , int perLen , void (*pOrder)(void * , void * ) ){ char* pt = (char*)p ; for( int i = 0 ; i len ; i++ ){ for( int j = i ; j len ; j++ ){ pOrder(pt+i*perLen,pt+j*perLen ) ; } } } ================================================== main.cc ================================================== #include iostream #include sort.h using namespace std; void orderInt( void * p1 , void * p2 ){ int * t1 = (int*)p1 ; int * t2 = (int*)p2 ; if( *t1 *t2 ){ int temp = *t1 ; *t1 = *t2 ; *t2 = temp ; } } struct Person{ char name[ 40 ] ; int age ; int id ; } ; void orderByAge( void * p1 , void* p2 ){ Person * t1 = (Person*)p1 ; Person * t2 = (Person*)p2 ; if( t1-age t2-age ){ Person t = *t1 ; *t1 = *t2 ; *t2 = t ; } } void orderById( void *p1 , void* p2 ){ Person* t1 = (Person*)p1 ; Person* t2 = (Person*)p2 ; if( t1-id t2-id ){ Person t = *t1 ; *t1 = *t2 ; *t2 = t ; } } void orderByName( void * p1 , void* p2 ){ Person* t1 = (Person*)p1 ; Person* t2 = (Person*)p2 ; if( strcmp( t1-name , t2-name ) 0 ){ Person t = *t1 ; *t1 = *t2 ; *t2 = t ; } } int main(){ int ia[] = { 3,1,6,3,6,8,3,468,89 }; sort( ia , 9, sizeof(int), orderInt ); for( int i = 0 ; i 9 ; i++ ){ coutia[i] ; } co

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档