산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 다차원 배열

C++ 다차원 배열

이 자습서에서는 C++의 다차원 배열에 대해 배웁니다. 보다 구체적으로 어떻게 선언하고 액세스하고 프로그램에서 효율적으로 사용하는지 설명합니다.

C++에서는 다차원 배열로 알려진 배열의 배열을 만들 수 있습니다. 예:

int x[3][4];

여기서 x 는 2차원 배열입니다. 최대 12개의 요소를 담을 수 있습니다.

이 배열은 아래와 같이 3개의 행이 있고 각 행에는 4개의 열이 있는 테이블로 생각할 수 있습니다.

<그림>

3차원 배열도 비슷한 방식으로 작동합니다. 예:

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

이 배열 x 최대 24개의 요소를 담을 수 있습니다.

단순히 차원을 곱하여 배열의 총 요소 수를 확인할 수 있습니다.

2 x 4 x 3 = 24
<시간>

다차원 배열 초기화

일반 배열과 마찬가지로 다차원 배열을 여러 가지 방법으로 초기화할 수 있습니다.

1. 2차원 배열의 초기화

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. 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차원 배열을 초기화하는 좋은 방법이 아닙니다. 이 배열을 초기화하는 더 좋은 방법은 다음과 같습니다.

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입니다. . 따라서 첫 번째 차원을 구성하는 두 가지 요소는 다음과 같습니다.

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

두 번째 차원의 값은 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이 있습니다. 두 번째 차원의 각 요소 내부의 숫자:

{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: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. 자바 복사 배열
  8. C++의 배열 | 선언 | 초기화 | 배열 예제에 대한 포인터
  9. 예제를 사용한 C++ 배열 동적 할당
  10. MATLAB - 배열