加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在hdf中存储数据集(C类的实例)

发布时间:2020-12-16 06:58:05 所属栏目:百科 来源:网络整理
导读:我有一个应用程序需要将数据存储到hdf文件. 是否可以将数据集存储在实际上是C对象的hdf中?例如,我想将下面的对象a中包含的数据存储到hdf文件(hdf4或hdf5).我可以这样做吗?如果是的话,如果有人可以证明这样做,我将不胜感激.谢谢. class A(){public: A(int i
我有一个应用程序需要将数据存储到hdf文件.

是否可以将数据集存储在实际上是C对象的hdf中?例如,我想将下面的对象a中包含的数据存储到hdf文件(hdf4或hdf5).我可以这样做吗?如果是的话,如果有人可以证明这样做,我将不胜感激.谢谢.

class A(){

public:
   A(int i,double j):i(i),j(j){};
   ~A();
   int i;
   double j;
   int* ai;
   vector<int> b;
   setValues(int i,double j){};
}

void main(){

  A *a;
  a = new A(10,10.2);

  // Store this data to hdf4 or hdf5


  //
  A *a2;

  // now read in the data stored in hdf file and assign the value here

}

解决方法

一种选择是使用复合类型,并将结构成员显式映射到HDF支持的基本类型.

我用方法找到的唯一复杂因素是列表和序列.一种选择是将列表项存储在不同的数据集中,然后引用开始和结束索引.

对于数据不连续或更复杂的情况,一种方法是使用链表类型构造.所以对于以下内容:

class A {
    int i;
    vector<int> b;
}

这被映射到:

ADataset => { i,b_index };
BDataset => { value,next_index };

‘ADataset’中的记录存储’b_index’. ‘BDataset’中的每条记录都包含该记录的值,然后是可选的next_index. sentinel值可用于’next_index’以知道何时停止.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读