gpt4 book ai didi

c++ - std::complex 是否以交错方式存储?

转载 作者:太空狗 更新时间:2023-10-29 20:30:59 27 4
gpt4 key购买 nike

也就是说,在磁盘上,如果我有一个 std::complex 数组,它存储的是 RIRIRIRI 还是 RRRRIIII 还是其他?

我真正的问题是 - 如果我定义了一个包含两个数字的结构,我可以重新解释转换我的结构数组以使用期望 std::complex 的函数> 阵列?

memcpy 呢?如果我的两个结构都是 float ,那么如果它们存储相同应该可以吗?

最佳答案

像这样定义的 std::complex 数组:

std::复数数组[COUNT];

...保证以 RIRIRIRI 的形式存储在内存中,因为 array[i] 根据定义与 i[array] 相同,即 *(array+i)。如果数组存储为 RRRRIIII,则无法使用简单的指针指向单个数组元素。

但是,在典型的现代 PC 中有一种情况,该数组存储为 RRRRIIII:在将其复制到 Direct3D 11+ 中的 GPU 的 StructuredBuffer 之后。如果这提高了 GPU 性能,则将 RIRIRIRI 数组复制到 GPU 的 API 调用可能会默默地将其重新排列为 RRRRIIII,这在实践中确实如此。

关于c++ - std::complex 是否以交错方式存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5317777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com