码迷,mamicode.com
首页 > 其他好文 > 详细

重载运算符

时间:2015-07-02 12:07:46      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:重载运算符

首先明白一个概念,何谓重载的运算符,并不是按照某些规则的大小,只是你希望它在排序中的先后顺序,按照同一规则,需要倒序排序的重载运算符"<"跟正序排序的重载运算符"<"里面要比较结构体部分数据的大小不同的。
其次,为什么要重载运算符,因为像结构体的的数据结构是没有机器是没有办法对他排序的,所以需要我们自定义其排序规则。
举例:
struct Data{
    char name[101];
    int age;
    int grade;
    bool operator < (const Data data) const{
        if(grade == data.grade){
            int tmp = strcmp(name,data.name);
            if(tmp == 0){
                return age < data.age;
            } else{
                return tmp<0;
            }
        } else{
            return grade > data.grade;
        }

    };
}arr[1001];
这样就能根据我们定义的规则:先比较两者成绩,成绩高的在前面,成绩相同,比较姓名,姓名比较根据字典排序,姓名相同则比较年龄。
因为只是举例,所以并无实际意义。

根据我们重载的运算符,结合sort函数,就可以对我们自定义的结构体进行排序。

版权声明:本文为博主原创文章,未经博主允许不得转载。

重载运算符

标签:重载运算符

原文地址:http://blog.csdn.net/mycomein/article/details/46724195

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!