0

我有一个这样定义的结构:

    typedef struct {
    string mName;
    vector<int> mParts;
} AGroup;

我将此结构的实例存储在向量中。我需要将其写入 HDF (v5) 文件。我想我可以遍历每个实例以找到最长的 mName 和最长的 mPart,创建一个新的、非可变长度的数组来保存信息,然后将该数组写入文件。

这是最好的方法吗?仅仅写一些数据似乎过于复杂。

4

1 回答 1

1

可变长度数组和字符串会引入开销。但它们也很有意义,因为它们更准确地反映了您的数据结构。您可以使用由可变长度 C 字符串和可变长度整数数组组成的复合数据类型。

如果您的字符串和向量的大小都接近相同的上限,请为自己节省一些时间和麻烦,并使用固定长度的字符串和数组。

这完全取决于数据集的大小。在磁盘空间方面,在可变长度元素的开销和固定大小元素的浪费空间之间存在权衡,如果不尝试就很难估计。如果您的数据集很小,请执行对您更方便的操作。如果它很大,请选择您最喜欢的:避免浪费空间、数据语义、易于编程等,并根据此标准进行优化。

于 2012-04-27T22:05:12.787 回答