1 차원 배열로 표시된 N x N의 정사각형 2 차원 배열이 있다고 가정 해 봅니다. 아래처럼 배열을 5x5로 지정하면 배열의 값은 중요하지 않습니다.열 경계가있는 배열 탐색
std::vector<int> array {
0, 1, 2, 3, 4,
5, 6, 7, 8, 9,
0, 1, 2, 3, 4,
5, 6, 7, 8, 9,
0, 1, 2, 3, 4
};
이 배열에 5 개의 행과 5 개의 열이 있다고하면 어떻게 행의 가장자리에 있는지 감지 할 수 있습니까? 예를 들어, 네 번째 행에 9가있는 색인에 있다면 행을 변경하지 않고 왼쪽으로 이동할 수 있음을 어떻게 알 수 있습니까? 그러나 오른쪽으로 이동하면 다음 행으로 넘어갑니다. 어떻게 가장자리에 대해 셀 이웃에 액세스 할 수 있습니까? 네 번째 행에있는 9의 색인에는 올바른 이웃이 없습니다. 경우
int index = row * num_cols + col
하고있는 내가 현재 인덱스를 것이 작업을 수행하는 방법을 생각할 수
유일한 방법은, 아마도 가장자리에 있는지 확인 계수 (인덱스 % 5 == 0)를 사용 . 그러나 그것은 우리가 왼쪽이나 오른쪽으로 갈 수 있는지를 결정하지 못합니다.