C++/CLRにおける多次元配列
Visual C++/CLRの場合の多次元配列は、arrayのネストによって宣言する。例えば、
array<array<String^>^> ^ a;
とすれば、a は2次元の配列用ハンドルとなる。これに対して、大きさ(2, 3)の行列を設定するときは
a = gcnew array<array<String^>^>(2); // 2行の配列
for (int i = 0; i < 2; i++)
a[i] = gcnew array < String^>(3); // 3列の配列
とすればよい。
サンプルプログラムを以下に示す。
int
main(array<System::String ^> ^args)
{
//
// arrayのネストで多次元配列の宣言
//
array<array<String^>^>
^ a; // 2次元配列用ハンドル
a = gcnew array<array<String^>^>(2); // 2行の配列
for (int i = 0; i
< 2; i++)
a[i] = gcnew array <
String^>(3); // 3列の配列
//
// 配列の各要素に値を設定
//
for (int i = 0; i
< 2; i++)
for
(int j = 0; j < 3; j++)
a[i][j] = i.ToString() + "-行/ " + j.ToString() + "-列";
//
// 各要素の書き出し
//
for (int i = 0; i
< 2; i++)
for
(int j = 0; j < 3; j++)
Console::WriteLine(a[i][j]);
Console::WriteLine("Press Enter-key");
Console::ReadLine(); // Enter-key
待ち
return 0;
}
上のプログラムを実行すると、図1の画面となる。
図1