C++_sort()及对结构体数组用sort()的用法

//排序sort
bool cmp(int x,int y)//用来从大到小 ,不加则从小到大 
{
    if(x>y) return true;
    else return false;
}

int main(){
    int a[11]={1,3,6,2,0,9,45,21,67,7,28};
    sort(a+0,a+11,cmp);//(数组名+数组需要排序的第一个坐标,数组名+数组需要排序的最后一个坐标+1) 
    for(int i=0;i<10;i++)
    cout<<a[i]<<" ";
    return 0;   
    }
//对结构体sort()
struct node
{
    int num;
    int data;
}c[100000+10];

bool  cmp(const node &x, const node &y)
{
    return x.data>y.data;//从小到大排<,若要从大到小排则>
}

int main()
{
    int n,k;
    cin>>n;
    for(int i=0;i<n;i++) c[i].num=i;
    for(int i=0;i<n;i++) cin>>c[i].data;
    sort(c+0,c+n,cmp);
    for(int i=0;i<n;i++) cout<<c[i].data<<' ';
    puts("");
    for(int i=0;i<n;i++) cout<<c[i].num<<' ';
    puts("");
} 

猜你喜欢

转载自blog.csdn.net/aaakkk_1996/article/details/81108160