다차원 배열의 개념
다차원 배열은 배열의 요소가 다시 배열인 구조를 말합니다.
가장 흔한 형태는 2차원 배열이며, 행렬(matrix)과 같은 데이터를 표현하는 데 사용됩니다.
3차원 이상의 배열도 가능하지만, 실제로는 2차원 배열이 가장 많이 사용됩니다.
2차원 배열의 선언과 초기화
2차원 배열 선언
이 선언은 3개의 행과 4개의 열을 가진 2차원 정수 배열을 생성합니다.
2차원 배열 초기화
이 방식으로 2차원 배열을 선언과 동시에 초기화할 수 있습니다.
부분 초기화
초기화되지 않은 요소들은 자동으로 0으로 초기화됩니다.
2차원 배열 요소 접근
2차원 배열의 요소에 접근할 때는 두 개의 인덱스를 사용합니다.
2차원 배열과 메모리
2차원 배열은 실제로는 1차원 메모리에 연속적으로 저장됩니다.
이를 이해하는 것은 배열의 효율적인 사용과 최적화에 중요합니다.
이 예제를 통해 2차원 배열이 메모리에 어떻게 저장되는지 확인할 수 있습니다.
2차원 배열과 반복문
2차원 배열의 모든 요소에 접근하려면 중첩된 반복문을 사용합니다.
범위 기반 for 루프와 2차원 배열
C++ 11부터는 범위 기반 for 루프를 사용하여 2차원 배열을 더 쉽게 순회할 수 있습니다.
다차원 배열
C++에서는 2차원 이상의 다차원 배열도 선언할 수 있습니다.
이는 2개의 3x4 2차원 배열을 가진 3차원 배열을 선언합니다.
다차원 배열의 매개변수 전달
함수에 다차원 배열을 전달할 때는 첫 번째 차원을 제외한 나머지 차원의 크기를 명시해야 합니다.
std::array와 다차원 배열
C++ 11 이상에서는 std::array를 사용하여 다차원 배열을 더 안전하고 편리하게 다룰 수 있습니다.
동적 다차원 배열
동적으로 크기가 결정되는 다차원 배열은 포인터의 배열 또는 벡터의 벡터를 사용하여 구현할 수 있습니다.
연습 문제
- 3x3 행렬을 입력받아 전치행렬(transpose)을 출력하는 프로그램을 작성하세요.
- 두 개의 2차원 배열(행렬)을 입력받아 행렬 곱셈을 수행하는 프로그램을 구현하세요.
- N x N 크기의 2차원 배열을 입력받아 시계 방향으로 90도 회전시키는 프로그램을 작성하세요.
참고자료