C++ sort函数中利用lambda进行自定义排序规则
一维vector<>排序
在c++中,由于sort()
函数默认提供的是由小到大的排序方式,因此有时候我们需要自定义排序规则来实现由大到小的排序。
#include <bits/stdc++.h>
using namespace std;
void printvec(vector<int>& vec){
for(int i = 0; i < vec.size(); i++){
cout << vec[i] << " ";
}
}
int main(){
int num[] = {
1, 9, 3, 8, 5, 7, 12};
vector<int> vec(num, num+(sizeof(num)/sizeof(num[0])));
//使用sort函数进行排序,默认为升序
sort(vec.begin(), vec.end());
printvec(vec);
return 0;
}
程序的输出结果为
1 3 5 7 8 9 12
现在我们引入Lambda()
匿名函数来实现自定义排序规则
#include <bits/stdc++.h>
using namespace std;
void printvec(vector<int>& vec){
for(int i = 0; i <