반응형
안녕하세요! 수구리입니다.
저번 포스팅에서는 반복문에 대해서 알아보았습니다!
2021.08.13 - [C++] - 1.1.14 반복문
이번 시간에는 이니셜 라이저 리스트에 대해서 알아보도록 하겠습니다!
이니셜라이저 리스트란?
- <initializer_list> 라는 헤더 파일에 정의되어 있다.
- 이를 통해 여러 인수를 받는 함수를 쉽게 작성할 수 있다.
- vector에 저장할 객체의 타입을 지정할 때처럼 원소 타입에 대한 리스트를 <>로 묶어서 지정한다.
아래의 예제에서 이니셜라이저 리스트를 인수로 받는 함수에 대해서 알아보고,
지난 포스팅 마지막 부분에 있는 범위 기반 for문을 이용하여 인자들의 총합을 계산하는 예제입니다!
#include <initialzer_list>
using namespace std;
int makeSum(initializer_list<int> lst){ // 정수에 대한 이니셜라이저 리스트를 인수로 받는다.
int total = 0;
for (int value : lst){ // 범위 기반 for문을 활용하여 주어진 정수들을 더한다.
total += value;
}
return total;
}
// 호출 방법
int a = makeSum({1, 2, 3});
int b = makeSum({10, 20, 30, 40, 50, 60});
이니셜 라이저 리스트의 특징
- 이니셜라이저 리스트는 타입에 안전하다. (type-safe 하다.)
- 이니셜 라이저 리스트를 정의할 때는 지정한 타입만 허용한다. (위의 예에서 함수를 호출할 때, 인자로 double type을 지정하면 컴파일 에러 또는 경고 메시지가 출력됨.)
이상으로 이니셜 라이저가 무엇인지? 그리고 그 특징은 어떤지 이를 사용한 예제에 대해서 알아보았습니다.
감사합니다!
반응형
'🌈 프로그래밍 > C++' 카테고리의 다른 글
[C++] 1.2.3 const의 이해 (3) | 2021.08.18 |
---|---|
[C++] 1.2.1 ~ 1.2.2 스트링 & 포인터와 동적 메모리 (0) | 2021.08.18 |
[C++] 1.1.14 반복문 (2) | 2021.08.13 |
[C++] 1.1.13 구조적 바인딩 (0) | 2021.08.13 |
[C++] 1.1.12 std::vector (0) | 2021.08.13 |