如果有人告诉我应该如何在 ref 类中声明一个动态多维数组,我将不胜感激?有人可以发布示例代码吗?
问问题
909 次
1 回答
2
如果您负担得起数组重新分配,请使用该array
类型。
您可以使用“数组数组”构造
/// Declaration
array<array<SomeType>^>^ arr;
/// Inititalization
arr = gcnew array<array<SomeType>^> (NumElts1);
for(int i=0 ; i < NumElts1 ; i++)
{
arr[i] = gcnew array<SomeType> (NumElts2);
}
或者只是多维的:
array<SomeType, NumDims> ^ Arr =
gcnew array<SomeType, NumDims>(NumElts1, NumElts2, ....);
一切都是垃圾收集的,因此您不必担心会破坏它们。
如果您真的需要“动态”数组,那么您可能会寻找System.Collections.Generic.List<T>
并使用“列表列表”。列表具有 ToArray() 方法。
编辑:
C++/CLI 中的array
类型是一个模板:
template<typename T, int NumDims = 1>
ref class array: System::Array
{
// black magic here
}
所以你可以将它用于没有第二个参数的一维数组。
array<SomeType>^ Arr = gcnew array<SomeType>(SizeOfThisArray);
于 2012-07-25T22:44:41.077 回答