首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

sort第三个参数的有关问题

2012-05-16 
sort第三个参数的问题bool compare(int a,int b ){return ab}int main(){int a[20]{2,4,1,23,5,76,11,4

sort第三个参数的问题
bool compare(int a,int b )

return a<b;
}

int main(){
int a[20]={2,4,1,23,5,76,11,43,24,9,8,7,9,7,45,6,6,54,2},i;
for(i=0;i<20;i++)
  cout<<a[i]<<" ";
cout<<endl;
sort(a,a+20,compare);
for(i=0;i<20;i++)
  cout<<a[i]<<" ";
cout<<endl;
return 0;
}

C++中STL的sort中第三个参数用自定义的compare(int a,int b)
为什么main主函数中却是sort(a,a+20,compare);
而不是sort参数中compare函数中带入参数呢 例如sort(a,a+20,compare(a[0],b[0]))之类的

[解决办法]
第三个参数是函数指针,通常就是比较大小的那个函数的函数名就OK
[解决办法]
传入的是函数地址,它将被sort回调。
[解决办法]
传入到sort中的是cmp的地址。然后用这个函数进行比较你的两个数据。
[解决办法]
http://www.cplusplus.com/reference/algorithm/sort/
[解决办法]
那个回调函数在系统封装了实现的时候好像很好用 经常用到
[解决办法]
就是给sort传入函数指针,去sort 使用形式参数来代替实参,在sort内部直接调用
可参考回调函数是什么意思

热点排行