Vector2 class in C++

Vector2 class in C++

本文关键字:C++ in class Vector2      更新时间:2023-10-16

在c++中,是否有一个Vector2类,如果有,我需要包括什么来使用它?

我想用它来存储二维向量,比如粒子的位置或速度

给你

struct Vector2
{
  float x;
  float y;
};

或者您也可以使用std::pair<float, float>

然后你会想要了解更多关于结构数组(SOA)和结构数组(AOS)的知识,以及它如何影响你的代码性能。

粒子系统通常采用SOA。

最后这里是一系列关于AOS的博客文章;SOA应用于微粒系统的实现。

编辑:有很好的数学库,如Eigen或glm,它们将为您定义这些类型以及许多有用的算法(具有高性能实现)。

标准库中没有"vector2"类。有一个pair类可以满足您的需求,但对于这种情况,最好创建您自己的向量类(因为这样您就可以将变量命名为x和y,而不是first和second),例如

class Vector2
{
public:
   double x;
   double y;
   Vector2( double x, double y);
   ... etc
}

然后可以重载运算符+,添加查找叉乘/点积等函数。

std::vector类不是你需要的。vector类基本上只是C语言错置数组的替代品。

标题<utility>中有std::pair。但是它不支持向量运算