[转载] c++对结构体数组排序

按结构体中某个成员进行排序,下面代码以成员b1为升序的排序

代码:

#include<iostream>  
#include<algorithm>  
using namespace std;  
struct st  
{  
    int a1;  
    int b1;  
}arr[100];  
bool  cmp(const st &x, const st &y)  
{  
    return x.b1<y.b1;//从小到大排<,若要从大到小排则>  
}  
int main()  
{  
    int i;  
    for (i=0;i<3;i++)  
      cin>>arr[i].a1>>arr[i].b1;//对结构体进行输入   
      sort(arr,arr+3,cmp);  
    for (i=0;i<3;i++)  
      cout<<arr[i].a1<<" "<<arr[i].b1<<endl;  
}