您的位置:首页 > 编程语言 > Go语言

<algorithm.h>中sort对结构体排序的用法

2016-01-25 21:33 603 查看
sort好用大家都知道的,废话不多说。

试过直接用数组,是会出现问题的,所以建议和容器一起用。

下面提供一种用法例子

 

[cpp] view
plain copy

#include <stdio.h>  

#include <iostream>  

#include <algorithm>  

#include <vector>  

using namespace std;  

  

struct Pearls  

{  

    int value;  

    int amount;  

};  

  

bool cmp(struct Pearls a, struct Pearls b)  

{  

    if(a.value > b.value)  

    {  

        return true;  

    }  

    return false;  

}  

  

int main()  

{  

    int te;  

    int i;  

    int sum;  

    int n;  

    vector<struct Pearls> a(101);  

    int max;  

      

    scanf("%d", &te);  

    while(te--)  

    {  

        scanf("%d", &n);  

        for(i = 0; i < n; i++)  

        {  

            scanf("%d %d", &a[i].amount, &a[i].value);  

        }  

          

        sort(a.begin(), a.end(), cmp);  

        for(i = 0; i < n; i++)  

        {  

            //printf("%d %d\n", a[i].amount, a[i].value);  

        }  

        max = a[0].value;  

        //printf("%d\n", max);  

        sum = max * (a[0].amount + 10);  

        for(i = 1; i < n; i++)  

        {  

            if(a[i].value * (a[i].amount + 10) > max * a[i].amount)  

            {  

                sum += max * a[i].amount;  

            }  

            else  

            {  

                max = a[i].value;  

                sum += max * (a[i].amount + 10);  

            }  

        }  

        printf("%d\n", sum);  

    }  

    //scanf("%d");  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: