728x90
728x90
2차원 배열을 특정 값으로 초기화 하는 방법
들어가며
- C++에서 2차원 배열을 특정 값으로 초기화 하는 방법에 대해 알아보자.
int ary[50][50];

방법
방법 ① : 2중 for 문 사용하기
- 2중 for 문으로 하나하나씩 값을 집어 넣는 아주 기초적인 방법이다.
int value = 1; // 초기화 하고자 하는 값 for (int i = 0; i < 50; i++) { for (int j = 0; j < 50; j++) { ary[i][j] = value; } }
방법 ② : memset 함수 사용하기
memset
함수를 사용하여 값을 초기화 하는 방법이다.- 단,
memset
함수를 사용할 경우,0
또는-1
로만 초기화 할 수 있다. - 함수를 사용하기 위해서는
<string.h>
(또는<cstring>
) 헤더를 불러와야 한다.
memset(시작주소, 값, 크기);
#include <cstring> memset(ary, 0, sizeof(ary)); // 2차원 배열의 모든 값을 0으로 초기화
방법 ③ : fill 함수 사용하기
fill
함수를 사용하여 값을 초기화 하는 방법이다.fill
함수를 사용할 경우,0
또는-1
뿐만 아니라 다양한 값으로 초기화 할 수 있다.
fill(시작주소, 끝주소, 값); // 값이 설정되는 범위 : [시작주소, 끝주소)
- 값이 설정되는 범위가
[시작주소, 끝주소)
이기 때문에, 1차원 배열은 보통 다음과 같이 사용하여 초기화시켜 준다.
int ary1D[10]; fill(ary1D, ary1D + 10, 1); // ary1D의 배열 값들을 1로 초기화
- 2차원 배열은 다음과 같이 초기화시켜 준다.
- 2차원 배열의 경우
ary[50][50]
이 존재할 때ary
의 시작 주소를 나타내는 것은ary[0]
이고, 가장 마지막 주소는ary[49][49]
이다. - 하지만
fill
함수의 두 번째 인자(끝주소
)는 범위에 포함되지 않기 때문에ary[49][49]의 주소 + 1
을 두 번째 인자로 넣어줘야 한다. - 그래서 결국 두 번째 인자에 넣어줘야 하는 값은
ary[50]
이다.
- 2차원 배열의 경우
fill(ary[0], ary[50], 1); // 2차원 배열의 값들을 1로 초기화
728x90
728x90
'Programming > C++' 카테고리의 다른 글
[C++] 2차원 배열 동적 할당 방법 (new 연산자) (0) | 2022.12.08 |
---|---|
[C++] multiset(중복 집합) (0) | 2022.11.09 |
[C++] set(집합) (0) | 2022.11.08 |
[C++] multimap(멀티 맵) (0) | 2022.11.08 |
[C++] unordered_map (0) | 2022.11.08 |
[C++] map(맵) (0) | 2022.11.08 |
[C++] pair(페어)와 tuple(튜플) (0) | 2022.11.03 |
[C++] lower_bound(), upper_bound() ; 이진 탐색(Binary Search) (0) | 2022.11.01 |