Vector2 class in C++
Vector2 class in C++
在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
。但是它不支持向量运算
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp