본문 바로가기
자료구조와 알고리즘/[서적]C++로 구현하는 자료구조와 알고리즘

3장-2. 2차원 배열과 위치 게임

by 헛둘이 2022. 9. 11.
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]의 벡터가 만들어진다.
  • 벡터는 내부적으로 할당된 메모리를 삭제하기 때문에
  • 위 동적 할당 예제처럼 별도로 삭제할 필요가 없다.

 

 

댓글