14.2.2.7. Array types
Array types 是任意类型的多维集合。用于识别数组的 TypeKind 是 TK_ARRAY。TypeDescriptor 的 element_type 属性必须设置为集合的类型。此外,bound 属性必须配置为包含每个维度大小的序列。边界序列必须至少有一个维度,并且不允许任何维度的大小为 0。
DynamicTypeBuilderFactory 提供了 DynamicTypeBuilderFactory::create_array_type 函数,以便于创建这种类型。此 API 需要存储在集合中的类型和与集合维度相关的序列。
DynamicData 类提供了特定于每种原始类型的 get_values() 和 set_values() 函数,使用户能够轻松处理原始类型数组。对于更复杂类型的数组,请参阅管理复杂数据类型。
注意: 多维数组会将每个维度展平为一维数组。
原始类型提升同样适用于这些方法。
如果要修改数组中特定范围内的值,可以通过将起始索引传递给 get_values() / set_values() 来仅管理从该元素开始的数据,直到给定输入的长度。也可以使用 get_value() / set_value() 通过传递要修改元素的索引来修改特定集合的元素。
// IDLXMLC++
struct ArrayStruct
{
long long_array[2][3][4];
};
解释
在上面的内容中,我们探讨了数组类型及其在动态数据处理中的实现方式。ArrayStruct
是一个示例结构,其中定义了一个三维数组 long_array
,其尺寸为 [2][3][4]。这意味着它可以容纳 24 个长整型(long)值,按照二维层次进行组织。这种结构使得在编程时能够有效地存储和操作多维数据集,同时保持对各个元素以及整体结构的清晰访问方式。
内容由零声教学AI助手提供,问题来源于学员提问