for (int i = 1; i <=n; ++i) scanf ("%d", &a[i]); sort (a + 1, a + 1 + n, greater <int> ()); for (int i = 1; i <= n; ++i) printf ("%d ", a[i]); return 0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 示例2 样例输入 10 1 2 ...
1 bool cmp(int a,int b) { return a > b; } 这个就是降序排序的比较函数,意思是: 是a > b 时为true,就不交换,a < b 时为 false,交换 然后我们调用 sort(a+1,a+n+1,cmp) 就可以对 a 数组进行排序了 还可以调用 greater 和 less 进行升/降序排序,其实就是一个帮你写好的函数 1 2 3 ...
1. greater函数对象 sort(a, a + n, greater<int>()); voidsolve(){cin>> n;for(inti =0; i < n; i++)cin>> a[i]; sort(a, a + n, greater<int>());for(inti =0; i < n; i++)cout<< a[i] <<' ';cout<<endl; } 2. 自定义比较函数 boolcompare(inta,intb){returna >...
returns1.age >s2.age; //从年龄大到小排序} sort(a,a+n); 方式4:lambda匿名函数 另外,对于规模较小的比较函数,lambda有时是一个更简洁的选择。 //lambda表达式定义排序规则sort(ret.begin(), ret.end(),[](pair<int,int>a, pair<int,int>b) {if(a.second != b.second)returna.second < b.s...
sort(a, a + 10, greater<int>()); // 10为元素个数 for (int i = 0; i < 10; i++) cout << a[i] << ' '; // 输出排序后数组 cout << endl; // 输出 9 8 7 6 5 4 3 2 1 0 // 方式二、使用 vector vector<int> arr = {9, 6, 3, 8, 5, 2, 7, 4, 1, 0};...
sort(a, a + n, greater<int>()); 如果在优先队列priority_queue中使用greater那么就是小根堆,反之是大根堆 小根堆: priority_queue<int, vector<int>, greater<int>> heap; #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 10010; int a[N]; int...
return a > b; } int main() { int arr[] = {5, 2, 9, 1, 8}; int n = sizeof(arr) / sizeof(arr[0]); sort(arr, arr + n, compare); for (int i = 0; i < n; i++) { cout << arr[i] << " "; } return 0; } ``` 运行结果为:9 8 5 2 1 三、使用sort函数操...
less<int>() greater<int>() 当你的容器中元素时一些标准类型(int float char)或者string时,你可以直接使用这些函数模板。但如果你时自己定义的类型或者你需要按照其他方式排序,你可以有两种方法来达到效果:一种是自己写比较函数。另一种是重载类型的’<'操作赋。
4 排序结果:unsorted array:4 2 3 1 2sorted array:1 2 3 4 5 5 不缺省,递减排序:加比较函数greater<int>()代码:#include<bits/stdc++.h>using namespace std;int main(){ int a[]={4,2 ,3 ,1,2}; int n=sizeof(a)/sizeof(int); //print the unsorted array cout<<"unsorted array:...
int pivot = Partition(rowIds,from,to); QuickSort(rowIds,from,pivot); QuickSort(rowIds,pivot+1,to); } 3、在Partition中涉及到两行数据的比较,以nullFirst_lessThan为例,逻辑如下: //给定两个row_id,输出对应的大小关系 bool nullFirst_lessThan(row_id_a, row_id_b) { ...