C++ 存储准备就绪的浮点数的正确方法

C++ 存储准备就绪的浮点数的正确方法,c++,data-structures,C++,Data Structures,这两种车的速度有差别吗 struct V{ float v[3]; float get_x() { return v[0];} // ... some more methods }; 及 通常,我的代码使用随机访问基的坐标。但在某些地方,我希望使用SSE说明。我认为float[]存储将加快向_um128加载和卸载数据的速度。我说的对吗?你会想让他们都知道这两个例子真的是一样的吗?一个有四个花车,另一个有三个。当然,谢谢。因此,我根据我对C标准的记忆制作了float[3]

这两种车的速度有差别吗

struct V{
    float v[3];
    float get_x() { return v[0];}
    // ... some more methods
};


通常,我的代码使用随机访问基的坐标。但在某些地方,我希望使用SSE说明。我认为float[]存储将加快向_um128加载和卸载数据的速度。我说的对吗?

你会想让他们都知道这两个例子真的是一样的吗?一个有四个花车,另一个有三个。当然,谢谢。因此,我根据我对C标准的记忆制作了float[3],它是实现定义的。数组是连续分配的,而结构是按顺序分配的。不同之处在于编译器有权在结构中插入任意填充,而数组则被尽可能紧密地打包。实际上,内存布局可能是相同的,因为如果所有结构成员都具有相同的类型,那么它可能使用与数组相同的对齐方式,不必要的填充将浪费空间。不过,唯一确定的方法是在特定的平台和编译器上对其进行测量。@Doval您可能希望将注释转换为答案!
struct V{
    float x;
    float y;
    float z;
    float get_x() { return x;}
    // ... some more methods
};