본문 바로가기

C++

C++ - Initializer_list

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