简直要被自己笑死,竟然把函数写在了主函数里面就说为啥老报错,这里不能定义函数,有时候会有一些基本的东西没有注意到,要细心
这个小测试是为了试验 sort 本身内置函数 和 cmp比较有区别吗,事实证明,只要内部的 比较顺序一样,cmp和内置函数一样的
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
//函数定义一定要在主函数之外
bool cmp(const vector<int> &a,const vector<int> &b)
{
return a[1]>b[1];
}
int main()
{
vector<vector<int>> test={{101,40,32},{31,43,5},{42,4,123}};
sort(test.begin(),test.end());
for(auto i:test)
{
cout<<"i[0]"<<i[0]<<"i[1]"<<i[1]<<"i[2]"<<i[2]<<endl;
}
sort(test.begin(),test.end(),[](const vector<int> &a,const vector<int> &b){return a[1]>b[1];});
for(auto i:test)
{
cout<<"i[0]"<<i[0]<<"i[1]"<<i[1]<<"i[2]"<<i[2]<<endl;
}
//test={1,43,32,31,43,5,42,4,123};
sort(test.begin(),test.end(),cmp);
// sort(test.begin(),test.end(),[](const vector<int> &a,const vector<int> &b){return a[1]>b[1];});
for(auto i:test)
{
cout<<"i[0]"<<i[0]<<"i[1]"<<i[1]<<"i[2]"<<i[2]<<endl;
}
// for(auto i:test1)
// cout<<i.first<<endl;
return 0;
}
来源:https://www.cnblogs.com/Marigolci/p/12275859.html