0

誰かがrefクラスで動的多次元配列を宣言する方法を教えてくれたらありがたいです。誰かがサンプルコードを投稿できますか?

4

1 に答える 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()メソッドがあります。

編集:

arrayC ++/CLIのタイプはテンプレートです。

template<typename T, int NumDims = 1>
ref class array: System::Array
{
    // black magic here
}

したがって、2番目の引数なしで1D配列に使用できます。

array<SomeType>^ Arr = gcnew array<SomeType>(SizeOfThisArray);
于 2012-07-25T22:44:41.077 に答える