c++ - 将数据从未对齐的结构数组移动到c ++中的对齐数组
问题描述
将数据从 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));
}
这是最有效的方法吗?
解决方案
推荐阅读
- python - 对于列表 L 中的每个项目,在数据框中找到所有相应的项目
- javascript - 使用带像素的背景位置的中心图像
- python - 将 TFlearn 模型转换为 Keras - Python 3.7
- webstorm - WebStorm 与 Visual Studio 中的调试
- sql-server - 使用 LEFT() 和 SUBSTRING() 从字符串中只提取这么多字符
- javascript - 添加新项目已加载,指示器图像在项目从 SharePoint 中的文件夹加载到网页后
- node.js - TypeError:无法读取猫鼬上未定义的属性“查找”
- node.js - 找不到模块'sqlite3'
- php - Laravel 中的 Slack 通知 - to() 函数什么都不做?
- python - 如何使用 discord.py 获取服务器 ID?