對結構體中的資料進行排序
阿新 • • 發佈:2019-02-04
#include <iostream> #include <algorithm> const int S=51000; using namespace std; struct TT { int id,v1,v2; }f[S]; bool cmp1(const TT &a, const TT &b)//按照結構體元素v1進行排序 { return (a.v1>b.v1); } bool cmp2(const TT &a, const TT &b)//按照結構體元素v2進行排序 { return (a.v2>b.v2); } int main() { int n,i; cin>>n; for (i=0;i<n;i++)//對結構體賦值 { cin>>f[i].v1>>f[i].v2; f[i].id=i+1; } cout<<endl; sort(f,f+n,cmp1);//呼叫函式cmp1排序 for(i=0;i<n;i++)//輸出排序後的結果 cout<<f[i].v1<<" "<<f[i].v2<<endl; cout<<endl; sort(f,f+n,cmp2);//呼叫函式cmp2排序 for(i=0;i<n;i++)//輸出排序後的結果 cout<<f[i].v1<<" "<<f[i].v2<<endl; cout<<endl; return 0; }
執行結果示例