【发布时间】:2011-12-25 01:55:33
【问题描述】:
我在我的代码中使用了自己的数学向量类。我有一个新的需求,将我的向量类推广到 n 维,而不是只有 2 维。
我的问题是,实现运算符重载的最佳方法是什么,这样做会产生很大的开销吗?
我现在将值存储在一个数组中
double *vals;
....
vals = new double[dimension];
有了这个,我像这样实现 + 运算符:
Vector Vector::operator+(Vector v)
{
Vector ret = Vector(dimension);
for (int i = 0; i < dimension; i ++)
{
ret.vals[i] = vals[i] + v.vals[i];
}
}
此操作将完成很多并且必须快速运行。这是否比旧版本差很多(就速度而言)?
Vector Vector::operator+(Vector v) {
return Vector(x + v.x, y + v.y);
}
感谢您的任何意见!
【问题讨论】:
-
哎呀,绝对想要那个!
标签: c++ performance vector