4-10. 다차원 배열

Crat3 ㅣ 2023. 5. 23. 16:44

1. 2차원 배열

[1][1][5][2][2] << 2층

[4][2][3][4][1] << 1층

다음과 같은 아파트같은 배열을 만드려고 한다.

int main()
{
    int first[5] = {4, 2, 3, 4, 1};
    int second[5] = {1, 1, 5, 2, 2};

    int apartment2D[2][5] = {{4, 2, 3, 4, 1}, {1, 1, 5, 2, 2}};

    for (int floor = 0; floor < 2; floor++)
    {
        for (int room = 0; room < 5; room++)
        {
            int num = apartment2D[floor][room];
            cout << num << " ";
        }
        cout << endl;
    }

    return 0;
}

반복문은 배열의 요소를 하나씩 검사해서 출력하게 한다.

각 floor 마다의 room 요소들의 값을 하나씩 출력하고 floor를 하나 올려 2층에서 동일 작업을 반복한다.

 

2. 단일 배열로 구현

   int apartment1D[10] = {4, 2, 3, 4, 1, 1, 1, 5, 2, 2};

    for (int floor = 0; floor < 2; floor++)
    {
        for (int room = 0; room < 5; room++)
        {   
            int index = (floor * 5) + room;
            int num = apartment1D[index];
            cout << num << " ";
        }
        cout << endl;
    }

이 두 가지 배열은 동일한 결과를 출력한다.

 

3. 응용

    int map[5][5] =
    {
        {1,1,1,1,1},
        {1,0,0,1,1},
        {0,0,0,0,1},
        {1,0,0,0,0},
        {1,1,1,1,1}
    };

    for (int y = 0; y < 5; y++)
    {
        for (int x = 0; x < 5; x++)
        {
            int info = map[y][x];
            cout << info;
        }
    }

위와 같은 코드를 사용하여 2차원 맵을 표현할 수 있다.

'기초 C++ 스터디' 카테고리의 다른 글

번외) 파일 분할 관리  (0) 2023.05.25
4-11. 포인터 최종 정리  (0) 2023.05.23
4-9. 멀티 포인터  (0) 2023.05.23
4-7. 포인터 vs 배열  (0) 2023.05.22
4-6. 배열  (0) 2023.05.22