2D 配列
2 次元配列は、2 つのインデックスを持つ配列です。各要素 (多くの場合、このような配列は 1 つの単語 - matrix) で呼び出されます)
さまざまな表形式のデータをマトリックスに格納して処理すると便利です。表が行と列で構成されているように、行列は行と列で構成されています。
わかりやすくするために、次のように配列を表すことができます。
実際には、コンピューターのメモリでは、マトリックスは次のようになります。
プログラムで行列を使用するには、データ型と 2 つのサイズ (数値または定数) を指定して、通常の配列と同様に宣言する必要があります。初期値をすぐに設定することも可能です (そして望ましいことです)。たとえば、すべての要素をリセットします。
例 1: 任意の初期値を持つ 3 行 3 列の配列を宣言する
<プレ>
intA[3][3] = {{0,1,2},
{3,4,5}、
{6,7,8} };
プレ>
例 2: 初期値ゼロで 5 行 10 列 (サイズは定数で設定) の配列を宣言する
<プレ>
const int N = 5、M = 10;
double B[N][M] = {};
プレ>
行列の特定の要素を参照するには、2 組の括弧を使用します。最初の括弧では行番号を示し、2 番目の括弧では列番号を示します。
例:
<プレ>
A[0][2] = 100; //行と列の番号付けはゼロから始まります
マトリックスの入力と表示
行列全体をトラバースするには、ネストされたループが必要です。キーボードから要素の値を要求し、塗りつぶされた行列を単に画面に表示するプログラムの例を使用して、行列の入力と出力を見てみましょう。
<プレ>
#include <iostream>
名前空間 std を使用します。
int main() {
/* 二次元配列の宣言 */
const int N = 2、M = 3;
int A[N][M];
/* キーボードから行ごとに行列の要素を入力します */
int i、j;
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
シン>> A[i][j];
//行列のすべての要素を画面に 1 行ずつ表示する
for (i = 0; i < N; i++) { //外側のループは行の反復処理を担当
for (j = 0; j < M; j++) //文字列の要素を表示するループ
cout << A[i][j] <<< " ";
cout <<エンドル; //j 行目の要素を表示した後、新しい行に移動します
}
0 を返します。
}
プレ>
上記の例では、行列の入力と表示の両方が行ごとに行われます (最初にすべての値を調べます
j - 列のインデックス、そして行インデックスのみが変化します -
>私)
ループ (内側と外側) を交換することで、列ごとに配列を埋めたり出力したりできます。