什么是从CameraSpacePoint数组到PointXYZ数组移动数据的最佳方式?
struct CameraSpacePoint
{
float X;
float Y;
float Z;
};
__declspec(align(16))
struct PointXYZ
{
float x;
float y;
float z;
};
constexpr int BIG_VAL = 1920 * 1080;
CameraSpacePoint camera_space_points[BIG_VAL];
PointXYZ points_xyz[BIG_VAL];
我的解决方案:
CameraSpacePoint* camera_space_points_ptr = &camera_space_points[0];
PointXYZ* points_xyz_ptr = &points_xyz[0];
for (int i = 0; i < BIG_VAL; ++i)
{
memcpy(points_xyz_ptr++, camera_space_points_ptr++, sizeof(CameraSpacePoint));
}
这是最有效的方法吗?
std::copy
... - Youstd::copy
需要从当前未提供的CameraSpacePoint
转换为PointXYZ
... - Jarod42