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

C++ 多次元配列

C++ 多次元配列

このチュートリアルでは、C++ の多次元配列について学習します。より具体的には、それらを宣言し、アクセスし、プログラムで効率的に使用する方法.

C++ では、多次元配列と呼ばれる配列の配列を作成できます。例:

int x[3][4];

ここで、x 二次元配列です。最大 12 個の要素を保持できます。

以下に示すように、この配列は 3 行のテーブルと考えることができ、各行には 4 列があります。

<図>

3 次元配列も同様に機能します。例:

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

この配列 x 最大 24 個の要素を保持できます。

次元を乗算するだけで、配列内の要素の総数を知ることができます:

2 x 4 x 3 = 24

多次元配列の初期化

通常の配列と同様に、多次元配列を複数の方法で初期化できます。

1.二次元配列の初期化

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

上記の方法は好ましくありません。この配列を同じ配列要素で初期化するより良い方法を以下に示します:

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

この配列には 2 行と 3 列があります。そのため、それぞれ 3 つの要素を持つ 2 行の要素があります。

<図>

2.三次元配列の初期化

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};

これは、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} }
                 };

この 3 次元配列の次元に注目してください。

最初の次元の値は 2 です .したがって、最初の次元を構成する 2 つの要素は次のとおりです。

Element 1 = { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} }
Element 2 = { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }

2 番目の次元の値は 3 です .最初の次元の各要素にはそれぞれ 3 つの要素があることに注意してください:

{3, 4, 2, 3}, {0, -3, 9, 11} and {23, 12, 23, 2} for Element 1.
{13, 4, 56, 3}, {5, 9, 3, 5} and {5, 1, 4, 9} for Element 2.

最後に、4 つの int があります。 2 番目の次元の各要素内の数字:

{3, 4, 2, 3}
{0, -3, 9, 11}
... .. ...
... .. ...

例 1:2 次元配列

// C++ Program to display all elements
// of an initialised two dimensional array

#include <iostream>
using namespace std;

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

    // use of nested for loop
    // access rows of the array
    for (int i = 0; i < 3; ++i) {

        // access columns of the array
        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

上記の例では、2 次元の int を初期化しました。 test という名前の配列 3 つの「行」と 2 つの「列」があります。

ここでは、ネストされた for を使用しています ループして配列要素を表示します。

最後に、反復ごとに配列要素を出力します。


例 2:2 次元配列の入力を受け取る

#include <iostream>
using namespace std;

int main() {
    int numbers[2][3];

    cout << "Enter 6 numbers: " << endl;

    // Storing user input in the array
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> numbers[i][j];
        }
    }

    cout << "The numbers are: " << endl;

    //  Printing array elements
    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

ここでは、ネストされた for を使用しています ループして 2 次元配列の入力を取得します。すべての入力が取得されたら、別のネストされた for を使用しました ループして配列メンバーを出力します。


例 3:三次元配列

// C++ Program to Store value entered by user in
// three dimensional array and display it.

#include <iostream>
using namespace std;

int main() {
    // This array can store upto 12 elements (2x3x2)
    int test[2][3][2] = {
                            {
                                {1, 2},
                                {3, 4},
                                {5, 6}
                            }, 
                            {
                                {7, 8}, 
                                {9, 10}, 
                                {11, 12}
                            }
                        };

    // Displaying the values with proper index.
    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 次元配列の要素を出力する基本的な概念は、2 次元配列の要素と似ています。

ただし、3 次元を操作しているため、2 つのループではなく合計 3 つのループを持つネストされた for ループを使用します。

ご覧のとおり、配列の複雑さは次元の増加とともに指数関数的に増加します。


C言語

  1. C# 配列
  2. C# 多次元配列
  3. C# ジャグ配列
  4. C++ 型変換
  5. C++ 演算子
  6. C++ コメント
  7. C++ プログラミングで配列を関数に渡す
  8. Java コピー配列
  9. C++ の配列 |宣言する |初期化 |配列へのポインタの例
  10. 例による配列の C++ 動的割り当て
  11. MATLAB-配列