gpt4 book ai didi

c++ - 如何在 C++ 中拆分 HDF5 复合数据类型

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:40 25 4
gpt4 key购买 nike

我有一个复合类型(int、double、double)的 HDF5 文件。目前,我通过将其结果存储在一个结构数组中,在一次操作中读取它,遵循 the example in the documentation。 .

但是我更愿意将这三个部分中的每一个保存在不同的数组中,所以我想提供 3 个指针,(int*, double*, double*) 并直接读取 3 个数组中的数据而不复制数据。

有人对如何做到这一点有什么建议吗?

最佳答案

我不认为这是可能的。

您可以轻松地将结构数组复制到一个循环中的三个数组中:

int a[n];
double b[n], c[n];
for (int i = 0; i < n; i++)
{
a[i] = s[i].a;
b[i] = s[i].b;
c[i] = s[i].c;
}

假设 s 是一个 struct { int a; 的数组双b;双c; 的(常数)大小 n,但我觉得您正在寻找直接的 HDF5 方式......

很明显,hyperslab 是行不通的,因为我相信复合类型是原子的。无论如何,复合类型意味着数据存储在文件中复合,因此以这种方式读取它可能更有效。如果您的数组真的很大,我给您的解决方案的唯一限制是内存。在现代计算机上应该没问题;)

关于c++ - 如何在 C++ 中拆分 HDF5 复合数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5294331/

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