【发布时间】:2009-11-30 01:49:09
【问题描述】:
我有一个向量类,它有加法、乘法、减法、除法等运算符。我正在尝试优化我的程序(它执行大量向量操作),并且我意识到大约 50% 的时间花在构造和破坏向量上。我知道这是因为每次我为向量调用非复合数学运算符时,都会构造一个新向量。有没有办法在不使用复合运算符或扩展向量运算的情况下防止这种情况发生?
如果我有:
Vector a = Vector(x, y, z);
Vector b = Vector(a, b, c);
Vector c = a + b;
我不能使用 += 因为 c 是一个全新的向量。我知道我可以用这个来加快速度:
c.x = a.x + b.x;
c.y = a.y + b.y;
c.z = a.z + b.z;
但这看起来不像只使用运算符那么干净。
【问题讨论】:
标签: c++