c++里sort函数里的比较函数怎么写
解决时间 2021-02-20 17:26
- 提问者网友:斑駁影
- 2021-02-19 20:49
最佳答案
- 五星知识达人网友:雾月
- 2021-02-19 21:47
sort接受的是参数是指针或迭代器,sort(a[0],a[n]);你这里只是2个元素。
可以自写比较函数,也可以用标准定义好的函数对象:
#include
#include
#include
using namespace std;
bool sort_desc(int a, int b)
{
return a > b;
}
bool sort_asc(int a, int b)
{
return a < b;
}
void p(int* begin, int* end)
{
while(begin < end)
cout << *begin++ << ' ';
cout << endl;
}
int main()
{
int a[] = {6,9,1,3,5,2,7,0,4,8};
sort(a, a + 10, sort_desc);
p(a, a + 10);
sort(a, a + 10, sort_asc);
p(a, a + 10);
sort(a, a + 10, greater());
p(a, a + 10);
sort(a, a + 10, less());
p(a, a + 10);
}
全部回答
- 1楼网友:梦中风几里
- 2021-02-19 22:20
void sort( iterator start, iterator end );
void sort( iterator start, iterator end, strictweakordering cmp );
第一个只需要传递你要排序的串(整形数组等都行)的头指针(数组第一个元素的指针)与数组最后元素的下一个位置
第二个前面两个参数同第一,但第三个参数是传递一个你定义用于排序的函数(返回比较的大小值,如strcmp或自定义的都行),因为第一个用的是默认的哈
我要举报
大家都在看
推荐资讯