Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- sort
- 삼성역테
- 임베디드 딥러닝
- 포스코 ai 교육
- 코테 문제
- 코테
- 컴퓨팅사고
- dfs
- MCU 딥러닝
- 알고리즘
- 영상처리
- tflite
- 초소형머신러닝
- 그리디
- DP
- 삼성역량테스트
- 코딩테스트
- bfs문제
- 자료구조
- 삼성코딩테스트
- 포스코 교육
- 딥러닝
- dfs문제
- BFS
- 포스코 AI교육
- DP문제
- tinyml
- 삼성코테
- TensorFlow Lite
- 다이나믹프로그래밍
Archives
- Today
- Total
코딩뚠뚠
[개념정리] 배열의 초기화 - fill 본문
반응형
서론 :
보통 배열을 초기화 하고자 할때는 보통 아래와 같은 방법을 사용한다.
- 선언과 동시에 초기화
- memset으로 초기화
- 값을 직접 넣어주어 초기화
아래는 사용 예시이다.
1. 선언과 동시에 0으로 초기화
int map[10][10] = {0,};
2. memset 으로 초기화
memset(arr, Flase, sizeof(arr));
3. 선언과 동시에 값을 직접 넣어주어 초기화
int map[2][2] = {
{1,2},
{3,4}
};
하지만 예를들어 5로 초기화하고 싶다하면 어떤 방법을 써야될까?
우선 선언하면서 값을 모두 넣어줄 수 있을 것이다.
int map[2][2] = {
{5,5},
{5,5}
};
하지만 2x2 배열이 아니고 100x100 배열이라면 이렇게 모두 넣어주기는 힘들것이다.
그렇다면 for문을 사용할 수 있을 것이다.
for(int i=0; i<100; i++){
for(int j=0; j<100; j++
map[i][j]=5;
}
}
번거롭고 for문으로 시간을 뺏기기는 싫다..
그러나 memset은 bool형 데이터에만 사용가능하다. 즉 0으로 초기화할때나 쓸수 있다는 얘기
std::fill
헤더 :
<algorithm>
fill 함수를 통해 한번에 원하는 값을 집어넣어 줄 수 있다.
우선 선언을 해준다.
int map[100][100] = {0,};
현재 0으로 초기화 되어있는 배열을 5로 초기화해주고자 한다.
fill(시작주소,끝나는주소,초기화값)
- 1차원 배열
fill(arr, arr+10, 5);
- 2차원 배열
fill(&map[0][0], &map[ROW -1][COL], 5)
- 백터
fill (v.begin(), v.end(), 5);
이와 같이 fill로 배열, 벡터를 초기화 해 줄 수 있었다.
반응형
'알고리즘 문제풀이 > 개념정리' 카테고리의 다른 글
[개념정리] c++ 메모리 영역 복사 (memcpy, copy) (0) | 2021.04.24 |
---|---|
endl 과 '\n'의 차이와 사용 (0) | 2021.04.11 |
[개념정리] Big - O 시간복잡도 표기 (0) | 2021.03.13 |
[개념정리] getline의 사용 (0) | 2021.03.04 |
[개념정리] strtok (0) | 2021.03.04 |