社区讨论

关于重载运算符

灌水区参与者 8已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
9 条
当前快照
1 份
快照标识符
@lpfg6l9w
此快照首次捕获于
2023/11/26 20:19
2 年前
此快照最后确认于
2023/11/26 22:01
2 年前
查看原帖
请问各位大佬,对结构体进行重载运算符时,在结构体中进行重载和在外面重载,时间常数有区别吗
比如:
我在【模板】多项式乘法(FFT) 中对结构体complex进行重载
CPP
//第一种
struct complex{db a,b;};
complex operator +(complex x,complex y){return {x.a+y.a,x.b+y.b};}
complex operator -(complex x,complex y){return {x.a-y.a,x.b-y.b};}
complex operator *(complex x,complex y){return {x.a*y.a-x.b*y.b,x.b*y.a+x.a*y.b};}
CPP
//第二种
struct complex{
    db a,b;
    complex operator + (complex x){return {a+x.a,b+x.b};}
    complex operator - (complex x){return {a-x.a,b-x.b};}
    complex operator * (complex x){return {a*x.a-b*x.b,b*x.a+a*x.b};}
};
第一种会tle后两个点,第二种可以ac这是为什么呢

回复

10 条回复,欢迎继续交流。

正在加载回复...