Programming/C++
[c++] 1차원 배열 초기화하기 (std::fill_n, std::fill)
마이구미포포
2022. 4. 18. 17:14
일반적으로 우리는 배열을 선언할때 초기화 해준다
<1차원 배열의 모든 원소 값을 0으로 설정>
- int arr[5]={};
- int arr[5]={0};
- int arr[5]={0,};
* 일부만 지정하는 경우 나머지는 모두 자동으로 0으로 설정된다
ex) int arr[3]={1,};
> 1, 0, 0
> arr[0]=1, arr[1]=0, arr[2]=0
<1차원 배열의 모든 원소 값을 1로 설정할 경우>
- 직접지정
int arr[5]={1, 1, 1, 1, 1};
이 방법은 원소의 개수가 적을 때만 할 수 있다
- std::fill_n() 사용
fill_n(원소 변경 시작 주소, 원소 개수, 변경 값);
fill_n()을 사용하면 간단하게 원소의 값을 변경할 수 있다
ex) fill_n(arr, 5, 1);
> arr 배열에 있는 전체 원소 5개를 모두 1의 값으로 변경한다
ex) fill_n(arr+1, 4, 1);
> arr배열의 두번째 원소부터 원소 4개를 모두 1의 값으로 변경한다
- std:;fill() 사용
fill(원소 변경 시작 주소, 원소 변경 종료 주소, 변경 값);
fill()은 fill_n()과 다르게 두번째에 변경하는 원소의 종료 주소를 넣어준다
ex) fill(arr, arr+5, 1);
> arr[0] 부터 arr[4]까지 값을 모두 1로 변경한다
ex) fill(arr+1, arr+4, 1);
> arr[1] 부터 arr[3]까지 값을 1로 변경한다 ( arr[1]=1, arr[2]=1, arr[3]=1 )
선언할 때 초기화했던 값을 변경하고 싶을 때 / 다른 값으로 초기화하고 싶을때 이렇게 fill_n, fill을 쓰면 편리하게 초기화할 수 있다