2차원 배열
- 전략 게임, 시뮬레이션 게임과 같은 게임들은 '보드'를 사용한다.
- 위치를 기반으로 한 게임들은 이런 보드를 만들어야 함
- 이것의 가장 자연스러운 방법이 2차원 배열이다.
C++에서 2차원 배열을 선언하는 법
int M[8][10] = {};
- 8개의 행과 10개의 열을 만든다.
- 이를 행렬이라고 부른다.
행렬의 동적 할당과 해제
int** M = new int*[n];
for (int i = 0; i < n; i++)
M[i] = new int[m]; // m 크기만큼 배열 동적 할당
// 결과적으로 M[n][m] 크기의 행렬이 만들어진다.
for (int i = 0; i < n; i++)
{
delete M[i];
}
delete[] M;
- 열을 모두 해제하고 최종적인 행렬 M을 해제한다.
STL 벡터로 행렬 구현
#include <vector>
using namespace std;
vector<vector<int>> M(n, vector<int>(m));
// 결과적으로 M[n][m]의 벡터가 만들어진다.
- 벡터는 내부적으로 할당된 메모리를 삭제하기 때문에
- 위 동적 할당 예제처럼 별도로 삭제할 필요가 없다.
'자료구조와 알고리즘 > [서적]C++로 구현하는 자료구조와 알고리즘' 카테고리의 다른 글
3장-4. 일반적인 링크드 리스트 구현 (단일, 이중, 환형) (0) | 2022.09.12 |
---|---|
3장-3. 단일 링크드 리스트 (String 버전) (0) | 2022.09.11 |
3장-1. 배열 정렬 (0) | 2022.09.11 |
3장. 배열, 링크드 리스트, 그리고 재귀 (0) | 2022.09.05 |
2장. 객체지향 설계 - 목표와 원리, 그리고 패턴 (0) | 2022.09.05 |
댓글