如何获得多维结构数组的长度



我有一个类,在构造函数中获得一个三维结构数组。为了进一步计算,它还需要每个维度的长度。

一个简短的例子:

MyStruct*** mySt;
mySt = new MyStruct**[5]
mySt[0] = new MyStruct*[4]
mySt[0][0] = new MyStruct[3]

我怎么能得到这些值(5,4,3)回来保存它们在新的类没有显式地发送给构造函数?

你不能从用new分配的普通c++数组中获取数组的大小,并将其存储为指针:没有语言结构允许你检索数组的大小。

处理这种情况有两种选择:

  • 在c++中使用支持大小调整的容器-例如,std::vector of vector of vector,或者
  • 在C中(或者在c++中,如果你喜欢用数组)构造一个单独的大小的3D数组,并将其与mySt数组一起传递。

相关内容

  • 没有找到相关文章

最新更新