【C++/CLI】配列の配列(ジャグ配列)

配列の配列をジャグ配列と言います。

サンプルコードは以下の通り。

//////////////////////////////////////////////
// 配列の配列(ジャグ配列) その1
//////////////////////////////////////////////
array<array^>^ jag1 = gcnew array<array^>(2);

int index1 = 0;

for (int j = 0; j < jag1->Length; j++)
{
	jag1[j] = gcnew array(3);
	for (int i = 0; i < jag1[j]->Length; i++)
	{
		jag1[j][i] = index1++;
	}
}
// jag1[0][0] = 0  jag1[0][1] = 1  jag1[0][2] = 2
// jag1[1][0] = 3  jag1[1][1] = 4  jag1[1][2] = 5

//////////////////////////////////////////////
// 配列の配列(ジャグ配列) その2
//////////////////////////////////////////////
array<array^>^ jag2 = gcnew array<array^>(3);

int index2 = 0;

for (int j = 0; j < jag2->Length; j++)
{
	jag2[j] = gcnew array(j + 1);
	for (int i = 0; i < jag2[j]->Length; i++)
	{
		jag2[j][i] = index2++;
	}
}

// jag2[0][0] = 0
// jag2[1][0] = 1  jag2[1][1] = 2
// jag2[2][0] = 3  jag2[2][1] = 4  jag2[2][2] = 5

上記の例は、配列の配列までの例ですが、配列の配列の配列も可能です。

array<array<array<int>^>^>^ jag;

 

このジャグ配列は、個人的にはあまり用いていませんが、上記の ジャグ配列 その2 の例でも示しているように、必ずしも1行あたりの配列の要素数は同じである必要は無いので、例えば、CSVファイルなどのように、1行あたりの要素数が不定になる可能性のある配列などに用いると便利です。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください