Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个这样定义的结构:
typedef struct { string mName; vector<int> mParts; } AGroup;
我将此结构的实例存储在向量中。我需要将其写入 HDF (v5) 文件。我想我可以遍历每个实例以找到最长的 mName 和最长的 mPart,创建一个新的、非可变长度的数组来保存信息,然后将该数组写入文件。
这是最好的方法吗?仅仅写一些数据似乎过于复杂。
可变长度数组和字符串会引入开销。但它们也很有意义,因为它们更准确地反映了您的数据结构。您可以使用由可变长度 C 字符串和可变长度整数数组组成的复合数据类型。
如果您的字符串和向量的大小都接近相同的上限,请为自己节省一些时间和麻烦,并使用固定长度的字符串和数组。
这完全取决于数据集的大小。在磁盘空间方面,在可变长度元素的开销和固定大小元素的浪费空间之间存在权衡,如果不尝试就很难估计。如果您的数据集很小,请执行对您更方便的操作。如果它很大,请选择您最喜欢的:避免浪费空间、数据语义、易于编程等,并根据此标准进行优化。