C++ C+中是否有标准的3d矢量类+;

C++ C+中是否有标准的3d矢量类+;,c++,optimization,vector,profiling,C++,Optimization,Vector,Profiling,在一个现有的项目中,我看到一个类Vector_3d,模板化,具有向量的常规操作(在代数意义上)。在分析之后,我注意到这个类花费了大量的时间 我想知道,C++中有没有一个众所周知的3D向量的基本概念。事实上,使用一个好的向量实现可能比尝试优化这个向量更容易 编辑: 这是在一些对象的几何表示的上下文中。但它独立于任何可视化。我将看看是否有一种避免频繁调用各种方法的方法。我将看一看提议的软件包。3d向量类没有太大的改进空间(基本上,点/叉积相当简单,矩阵乘法也很简单)。 如果在这个类中花费了这么多时间

在一个现有的项目中,我看到一个类Vector_3d,模板化,具有向量的常规操作(在代数意义上)。在分析之后,我注意到这个类花费了大量的时间

我想知道,C++中有没有一个众所周知的3D向量的基本概念。事实上,使用一个好的向量实现可能比尝试优化这个向量更容易

编辑:
这是在一些对象的几何表示的上下文中。但它独立于任何可视化。我将看看是否有一种避免频繁调用各种方法的方法。我将看一看提议的软件包。

3d向量类没有太大的改进空间(基本上,点/叉积相当简单,矩阵乘法也很简单)。 如果在这个类中花费了这么多时间,那么使用它的代码可能有缺陷。你核对过了吗

  • 复制与引用
  • 错误关联(如将矩阵乘以所有向量,而不是将所有向量乘以矩阵链)

我知道Qt中有一个,这可能会帮助你(顺便说一句,对于常见的3D几何操作,他们也有向量2D和4D)

Dave Ebery的是这些类型类的一个很好的资源。

我喜欢。另外,它只是标题,并且具有内置的矢量化支持。

Boost::QVM也可以是一个选项:

您参与的项目是什么?如果它与3D渲染相关,那么您可能会幸运地使用一个完善的实时渲染包。在这种情况下,您无法避免这一事实。也许您应该将关键字“inline”添加到一个常用函数中。例如:光线跟踪器经常使用许多函数,如叉积,这是不可避免的