| 查看: 645 | 回复: 5 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
lixy1217木虫 (著名写手)
|
[交流]
STL中重载运算的问题
|
||
|
以vector的加法为例,首先想到的语法是 template<typename T> vector<T>&operator+(vector<T>&a,vector<T>&b) 但是有一个问题,我们会希望不同类型(int、double、complex)之间的向量应该也是可以相加的。 而如果用两个类型名,写成如下 operator+(vector<T1>&a,vector<T2>&b) 我们又无法在定义的时候就知道该返回哪个类型的,显然int+double应该返回double,而double+complex该返回complex 而如果放弃对"+"的重载,而只重载"="和"+=",即 "c=a; c+=b;" 的方式,这样看起来不舒服倒是小事,但我如果还想重载一个矩阵与向量的乘法那该怎么办呢? 还有一种方法,就是将"小"的向量赋值给"大"的向量,达到类型统一后再进行计算,可这样的话就可能要多出很多计算量。 例如complex+complex是double+complex的两倍,而complex*complex大概是double*complex的三倍。 这方面,Matlab似乎很好的解决了此问题,但不知道用了什么样的办法。 当然还是更希望能听到各位的高见~ |
» 猜你喜欢
孩子确诊有中度注意力缺陷
已经有13人回复
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复

5楼2015-09-17 09:23:01














回复此楼