我有一个向量类。
如果我想要访问其中一个元素,我需要输入 vec.x、vec.y 和 vec.z。现在,我有一个算法应该按索引访问数据成员,例如:
class vector3f
{
public:
float x;
float y;
float z;
};
如果我想要访问其中一个元素,我需要输入 vec.x、vec.y 和 vec.z。现在,我有一个算法应该按索引访问数据成员,例如:
for(int i = 0; i < 3; i++)
{
vec[i] = i*i;
}
没有索引来处理这个问题的话,需要编写多个if条件语句:
for(int i = 0; i < 3; i++)
{
if(i == 0){vec.x = i*i;}
else if(i == 1){vec.y = i*i;}
else if(i == 2){vec.z = i*i;}
}
有没有一种方法可以索引数据成员,使它们在编译时解析? 我不想在向量类中使用数组,因为使用vec.x、vec.y和vec.z访问数据成员对程序员更方便。避免这些if条件语句的最佳解决方案是什么?
operator[]
吗? - Some programmer dudeoperator[]
将被优化并内联。此外,如果您需要这样的功能,为什么不使用vector<float>
或array<float,3>
呢? - luk32std
类:也许是因为它们不提供.x
访问? - Angew is no longer proud of SO