Up, en

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

 

 

 

Up