728x90
이니셜라이저 리스트는 헤더 파일에 정의되 있으며, 이를 통해 배열 형태와 같은 여러 인수를 받는 함수를 쉽게 작성할 수 있다. 클래스 템플릿이기 때문에 사용할 때 꺾쇠괄호(<>)에 타입을 지정해서 사용해야 한다.
#include <iostream>
#include <initializer_list>
using namespace std;
int Sum(initializer_list<int> list)
{
int result = 0;
for( int i : list )
{
result += i;
}
return result;
}
int main()
{
int a = Sum({1, 2, 3, 4, 5});
cout << a << ", " << Sum({6, 7, 8, 9, 10}) << endl; // 15, 40
}
이니셜라이즈 리스트는 타입에 안전하다. 따라서 정의할 때 지정한 타입만 허용한다. 예를 들어
int c = Sum{1, 2, 3.0}) // error
위와 같이 int로 정의된 이니셜라이즈 리스트에 double 타입의 값이 들어가면 컴파일러가 자동으로 타입을 변환해 주는 것이 아니라 에러메시지가 출력된다.
728x90
'C++' 카테고리의 다른 글
C++ - 포인터와 배열 (0) | 2023.01.27 |
---|---|
C++ - pointer (0) | 2023.01.23 |
C++ 기초(반복문) (0) | 2023.01.21 |
C++ - 구조적 바인딩 (2) | 2023.01.19 |
C++ 기초(배열) (0) | 2023.01.19 |