1-14-1. 多次元配列

公開日: 23:51 1. 基本編/1-14. 配列/1-14-1. 多次元配列


C++は多次元配列を備えています。多次元配列の一般的な形式は次のとおりです。
type name[size1][size2]...[sizeN];

3次元の整数配列5.10.4を作る宣言は次のようになります。
int threedim[5][10][4];

二次元配列

多次元配列の最もシンプルな形は二次元配列です。二次元配列は本質的に一次元配列のリストです。サイズがx、yのint型2次元配列を宣言するには次のように記述します。
type arrayName [ x ][ y ];

typeにはC++で有効なデータ型、arrayNameにはC++の有効な識別子が入ります。二次元配列は行数xと列数yのテーブルであると考えることができます。3つの行と4つの列を含む二次元配列aは次のようになります。
列0列1列2列3
行0a[0][0]a[0][1]a[0][2]a[0][3]
行1a[1][0]a[1][1]a[1][2]a[1][3]
行2a[2][0]a[2][1]a[2][2]a[2][3]

このように、配列a内の各要素はa[ i ][ j ]の形式の要素名で識別され、aは配列の名前、iとjはaの各要素固有の識別子となる添字です。

二次元配列の初期化

多次元配列は各行を中括弧でくくられた値で初期化されることがあります。以下は3行と4列の配列です。
int a[3][4] = {  
 {0, 1, 2, 3} ,   /*  0行目の初期化 */
 {4, 5, 6, 7} ,   /*  1行目の初期化 */
 {8, 9, 10, 11}   /*  2行目の初期化 */
};

行を示す入れ子の中括弧はオプションです。次の初期化は上の例と同じです。
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

二次元配列の要素へのアクセス

二次元配列の要素は添字を使ってアクセスされます。つまり、配列の行数と列数です。
int val = a[2][3];

上の構文は配列の3行目の行の4番目の要素を取ります。

#include <iostream>
using namespace std;
 
int main ()
{
   // 5行2列の配列
   int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
 
   // 各配列の要素値を出力
   for ( int i = 0; i < 5; i++ )
      for ( int j = 0; j < 2; j++ )
      {
         cout << "a[" << i << "][" << j << "]: ";
         cout << a[i][j]<< endl;
      }
 
   return 0;
}
上のコードをコンパイルし実行すると、次の結果が得られます。
a[0][0]: 0
a[0][1]: 0
a[1][0]: 1
a[1][1]: 2
a[2][0]: 2
a[2][1]: 4
a[3][0]: 3
a[3][1]: 6
a[4][0]: 4
a[4][1]: 8

多くの場合一次元または2次元の配列が使われますが、あらゆる次元数の配列を作成で きます。
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿