728x90
예를 들어, int arr[10]과 같은 배열을 초기화 하고 싶을 때를 생각하자
array의 초기화법
- 간단한 초기화 방법
int arr[10]={0,1,2,3,4,5,6,7,8,9};
- 배열을 전부 0으로 초기화 하고 싶을 때
int arr[10]={0};
- 0이 아닌 다른 값으로 초기화 하고 싶을 때
for(int i=0;i<10;i++)
arr[i]=n;
fill_n(arr,10,3);
fill(arr,arr+10,3);
- arr[0]만 1이고 나머지는 0으로 초기화
int arr[10]={1};
- memset을 이용한 초기화 방법
memset의 기본함수 구조
void *memset(void *ptr,int value, size_t num);
- ptr : 채우고자 하는 메모리의 시작 포인터
- value: 메모리에 채우고자하는 값
- num : 채우고자하는 바이트 수, 즉 메모리의 크기
memset(arr,0,sizeof(arr));
arr 배열을 0으로 채운다!
vector의 배열 초기화 법
- 배열과 같이 원소를 직접 할당해줄 수 있다.
vector<int> arr={1,2,3,4};
- 기본 초기화
vector<int> arr(3);
--> 배열의 값이 0,0,0으로 초기화된다.
vector<int> arr(3,10);
--> 배열의 값이 10,10,10 으로 초기화 된다.
- fill 함수 이용
vector<int> arr(3);
fill(arr.begin(),arr.end(),3);
--> 배열의 값이 10,10,10 으로 초기화 된다.
- assign 함수 이용
vector<int> arr;
arr.assign(3,10);
--> 배열의 값이 10,10,10 으로 초기화 된다.
다차원 vector의 초기화
vector<vector<int>> arr(3, vector<int>(3,10));
--> 출력은 3X3 모두 10으로 초기화 된다.
'알고리즘 > 기타 개념' 카테고리의 다른 글
[C++] string의 변환 (0) | 2021.08.27 |
---|---|
[C++] upper_bound, lower_bound (0) | 2021.08.26 |
[C++] vector 오름차순, 내림차순 (0) | 2021.08.18 |
[C++] cin과 getline을 같이 사용할 때 필요한 것 (0) | 2021.08.13 |
[C++] 2차원 vector 사용법 (0) | 2021.08.13 |