即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

元素(element)为结构体的vector 找最大元素(element)

编程语言 swust5120160705 18℃ 0评论

/* max_element(col.begin(),col.end())和min_element(col.begin(),col.end())都默认使用less来排序的,复杂度是O(n),返回值都是iterator      但不支持自定义类型,如下程序无法达到目的*/

#include


#include


#include


#include


using namespace std;





class Student


{


public:


    Student(const string &Name, int Age): name(Name), age(Age)


    { }


    string name;


    int age;


};





int main()


{


    vector vec;





    vec.push_back(Student(“Tom”, 9));


    vec.push_back(Student(“Jerry”, 10));





    //返回最大Student元素的name


    Student eldest = *max_element(vec.begin(), vec.end());


    cout <




    cout <

    system(“pause”);


    return 0;


}

//此时需要自己编写比较函数,如在class后main前加入

bool cmp(const Student &stu1, const Student &stu2)


{


    if (stu1.age < stu2.age)


    {


        return true;


    }


    else


        return false;


}

main函数中的    //返回最大Student元素的name可改为


    Student eldest = *max_element(vec.begin(), vec.end(), cmp);

原文地址:

http://hi.baidu.com/roamyuan15/item/f5194dbde8f86cdf84dd7961


转载请注明:CodingBlog » 元素(element)为结构体的vector 找最大元素(element)

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情