想知道C++是否有类似于C#中的Vector2/3/4标准等效结构体?
编辑说明:对于XNA C# Vector2/3/4 "structures"(我不太确定它们是什么),它们基本上像在C++中定义的结构体一样,保存2、3或4个浮点值:
struct Vector3
{
float x, y, z;
};
我一直使用C++中的那段代码,但是我希望能够找到一个标准的替代方案,但是我没有找到。
想知道C++是否有类似于C#中的Vector2/3/4标准等效结构体?
编辑说明:对于XNA C# Vector2/3/4 "structures"(我不太确定它们是什么),它们基本上像在C++中定义的结构体一样,保存2、3或4个浮点值:
struct Vector3
{
float x, y, z;
};
我一直使用C++中的那段代码,但是我希望能够找到一个标准的替代方案,但是我没有找到。
Vector3结构体在C#中来自XNA,而不是基类库。
在C++中相当于使用XMFLOAT3。
valarray<complex<T>>
可以在许多情况下像 Vector2
一样使用。对于 Vector3/4
,我不知道有什么标准等效物。
我不相信在C++中有任何等效的“预制”对象。STL vector
并不是同样的东西。那基本上是一个用于存储任何值类型的动态数组,而你所提到的向量是一个带有附加成员功能的类,通常在XNA图形应用程序中使用(至少在我的经验中是这样)。你对Vector2/3/4是数据结构的认识是正确的。你可以很容易地将W、X、Y、Z分量的值存储在自己的结构中,但是Vector2/3/4对象提供的附加成员函数需要由你添加。