我对 C++ 相当陌生,并且有以下问题,我们称之为问题。在我的计算机模拟中,我经常使用向量。我为自己构建了一个表示向量的小结构,并且想学习如何使操作(例如normalize()
函数更高效。另外,使用 C++ 有什么好处valarray
吗?它似乎预先实现了一些有用的方法.
我几乎只使用normalize()
向量的函数和加法/减法/乘法。由于我所有的向量只有三个元素,所以我对在我的项目中包含 3rd 方库犹豫不决。
这是我的结构:
struct vector_t {
int _i, _j, _k;
vector_t(int i, int j, int k) {
_i = i;
_j = j;
_k = k;
}
vector_t() {}
inline int getI() {
return _i;
}
inline int getJ() {
return _j;
}
inline int getK() {
return _k;
}
inline void setI(int val) {
_i = val;
}
inline void setJ(int val) {
_j = val;
}
inline void setK(int val) {
_k = val;
}
void normalize() {
float length = sqrt(_i*_i + _k*_k + _j*_j);
_i /= length;
_j /= length;
_k /= length;
}
};
还有我的问题:
- 我怎样才能加快这个
normalize()
功能,或者这已经是最有效的方法了吗? - 在保持内存和计算机时间使用率较低的同时,实现这种结构/类的更 C++ 的方式是什么?
- 我应该更喜欢 valarray 而不是我自己的类型吗?