c++重载运算符
c++语言中,我们可以任意重载(重新定义)运算符
这种操作一般是为了使用伟大的STL或自行进行封装
e.g.使用库函数std::sort或优先队列
下面就以重载小于号为例
重载小于号
struct Node { //首先这个操作要在结构体中进行
int d, e; //这是主程序中本来要用到的变量(自行定义)
bool operator < (const Node x) const { //bool类型
return d < x.d; //从小到大排序
} //结构体是可以套函数的
Node(int d, int e):d(d), e(e){} //结构体大招 我含我自己
};
好了就是这样
看注解应该能看懂
看不懂就把板子背下来
这种重载在使用时是从小到大
那么从大到小怎么操作?
struct Node {
int d, e;
bool operator < (const Node x) const {
return d < x.d; //从大到小排序
}
Node(int d, int e):d(d), e(e){}
};
很有精神是吧(我才不会告诉你我没看出来区别)