알고리즘 문제를 풀거나, 프로그래밍을 하다보면 배열을 사용하는 경우가 많을 것이다.
배열을 사용하면, 당연히 초기화를 해야할 것이다.
이때, 배열을 초기화하는 방법이 C과 C++이 약간은 다르다고 할 수 있다. (혹시, 내용이 잘못되었다면 댓글 부탁 드립니다.)
간단하게, 정수형 배열을 C와 C++에서 어떻게 다른 지 예제로 확인해보자.
먼저, 간단한 배열이라면 아래처럼 초기화할 수 있다.
1 | int arr[10] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; | cs |
위의 경우는 정말 간단한 배열일 때나 가능할 것이다. 언제 초기화 할지..
물론, for문으로 반복해서 초기화 하는 방법도 있겠지만, 더욱 간단한 방법을 찾아보자.
먼저, GCC를 사용할 때는 다음과 같은 방법을 사용할 수 있을 것이다.
1 2 3 4 5 6 7 8 | #include <stdio.h> int main(void) { int arr[100] = { [0 ... 99] = -1 }; for (int i=0; i<100; i++) { printf("%d ", arr[i]); } return 0; } | cs |
1 | int arr[100] = { [0 ... 99] = -1 }; | cs |
위의 내용처럼, ["초기 값" ... "마지막 값"] = "입력하고자 하는 값" 으로 배열을 초기화할 수 있다.
C++에서는 다음과 같은 함수를 사용할 수 있다.
1 2 3 4 5 6 7 8 9 | #include <iostream> int main(void) { int arr[100]; std::fill_n(arr, 100, -1); for (int i=0; i<100; i++) { std::cout << arr[i] << " "; } return 0; } | cs |
1 | std::fill_n(초기화 하려는 배열 이름, 배열의 자리수, 초기화 하려는 값); | cs |
C++ 에서는 배열을 위의 함수를 사용하여 배열을 초기화할 수 있다.
배열을 초기화할 때 for문을 이용하여 배열을 초기화할 수도 있겠지만, 위에서 설명한 두 가지 방법으로 배열을 초기화 해보는 것은 어떨까 싶다.
'프로그래밍 > C || CPP' 카테고리의 다른 글
C++ virtual, override, final 키워드별 사용하는 이유를 알아보자. (2) | 2019.06.18 |
---|---|
[C || C++] Cpplint로 Google C++ Coding Style Guide 체크해보자. (2) | 2019.03.24 |
[C || C++] 입력 받은 대로 출력하는 방법 (BAEKJOON 11718번 문제) (0) | 2018.10.14 |
[C++] “Field has incomplete type” error 문제 해결 (0) | 2018.07.11 |
[C | C++] #define 매크로 상수, 함수 정리 (1) | 2018.05.10 |
댓글