前言
之前写一篇题解的时候,用到了重载运算符,就是这篇。
所以说这次做个详细解析。
1.0
真的不知道起什么标题。
重载运算符可以简单理解为给这个运算符一个新的使用方法,一般在结构体等拥有多个成员的东西里面会用的比较多。
2.0
先写一个大概的写法(结构体里的):
返回类型 operator重载的符号(const 你的结构体名字& tmp) const{//重载运算符
写你的规则
}
然后就是一些注意事项:
1.一定要加上const,可以理解为防止改变原来的值,去掉之后效果会有所改变。
2.返回类型必须写对,比如
<
<
<或者
>
>
>,返回bool类型。
3.别重载错了,比如优先队列要重载小于号。
好吧,也没什么可说的了,接下来就是一些简单的例子。
3.0
struct pr{
int id,time1,time2,lv;
bool operator<(const pr& tmp) const{
if(lv!=tmp.lv){
return lv<tmp.lv;
}
return time1>tmp.time1;
}
};
然后你也可以写一个结构体加法
struct aa{
int a,b,c;
aa operator+(const aa& tmp) const{
return {a+tmp.a,b+tmp.b,c+tmp.c} ;
}
};
当然也可以重载多个运算符,重载完也可以去sort排序结构体了。