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]이다.
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

2차원 배열을 특정 값으로 초기화 하는 방법들어가며방법방법 ① : 2중 for 문 사용하기방법 ② : memset 함수 사용하기방법 ③ : fill 함수 사용하기