工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++多次元配列完全ガイド:宣言、初期化、ループ処理

C++ 多次元配列

このガイドでは、C++での2次元・3次元配列の宣言、初期化、イテレーションを実践的なコードサンプルとベストプラクティスとともに解説します。

C++において、多次元配列は単純に配列の配列です。例えば:

int x[3][4];

ここでは x は12要素を保持できる2次元配列です。3行4列のテーブルとしてイメージできます。

C++多次元配列完全ガイド:宣言、初期化、ループ処理

3次元配列も同じロジックで拡張されます:

float x[2][4][3];

総要素数は次元を掛け合わせて計算:2 × 4 × 3 = 24。


多次元配列の初期化

1次元配列と同様、多次元配列も複数の方法で初期化できますが、可読性が重要です。以下のセクションで推奨プラクティスを示します。

1. 2次元配列の初期化

int test[2][3] = {2, 4, 5, 9, 0, 19};

文法的には正しいですが、読みにくいです。ネストした初期化子を推奨します:

int test[2][3] = {{2, 4, 5}, {9, 0, 19}};

これで2行3列が明示的になります。

C++多次元配列完全ガイド:宣言、初期化、ループ処理

2. 3次元配列の初期化

int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};

これも可読性が低いです。各次元をグループ化する明確なアプローチ:

int test[2][3][4] = {
    {{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}},
    {{13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9}}
};

最初の次元が2つの3行ブロックを含み、各行が4列であることが分かります。


実例 1: 2次元配列

#include <iostream>
using namespace std;

int main() {
    int test[3][2] = {{2, -5}, {4, 0}, {9, 1}};

    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 2; ++j) {
            cout << "test[" << i << "][" << j << "] = " << test[i][j] << endl;
        }
    }
    return 0;
}

出力

test[0][0] = 2
test[0][1] = -5
test[1][0] = 4
test[1][1] = 0
test[2][0] = 9
test[2][1] = 1

このスニペットは、ネストした for ループでまず行、次に列をイテレーションし、各要素を出力しています。


実例 2: 2次元配列への入力受け取り

#include <iostream>
using namespace std;

int main() {
    int numbers[2][3];
    cout << "Enter 6 numbers: " << endl;

    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> numbers[i][j];
        }
    }

    cout << "The numbers are: " << endl;
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << "numbers[" << i << "][" << j << "]: " << numbers[i][j] << endl;
        }
    }
    return 0;
}

出力

Enter 6 numbers:
1 2 3 4 5 6
The numbers are:
numbers[0][0]: 1
numbers[0][1]: 2
numbers[0][2]: 3
numbers[1][0]: 4
numbers[1][1]: 5
numbers[1][2]: 6

ここでは2重ネストループでユーザー入力を収集し、格納した値を表示しています。


実例 3: 3次元配列

#include <iostream>
using namespace std;

int main() {
    int test[2][3][2] = {
        {{1, 2}, {3, 4}, {5, 6}},
        {{7, 8}, {9, 10}, {11, 12}}
    };

    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                cout << "test[" << i << "][" << j << "][" << k << "] = " << test[i][j][k] << endl;
            }
        }
    }
    return 0;
}

出力

test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12

3次元配列のループには3重ネストループが必要——各次元に対応します。このパターンは高次元にも自然に拡張できますが、複雑性は急速に増大します。

C言語

  1. C# 配列をマスターする:宣言、初期化、操作
  2. C# 多次元配列:2次元配列をコード例で徹底解説
  3. C# ジャグ配列をマスターする:宣言、初期化、アクセス
  4. C++型変換完全ガイド:暗黙・明示変換とキャスト技法
  5. C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
  6. C++コメント完全ガイド:読みやすく保守しやすいコードのためのベストプラクティス
  7. C++配列を関数に渡す完全ガイド:1次元・多次元配列の実例付き
  8. C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
  9. C++動的配列の確保をマスター:コード例付き実践ガイド
  10. MATLAB:多次元配列と特殊配列をマスターする
  11. Java配列コピー技法:包括的ガイド