상세 컨텐츠

본문 제목

[C++11] Initializer lists

C++/Modern C++(11, 14, 17, 20)

by deulee 2023. 8. 28. 13:56

본문

"Initializer lists"는 C++11에서 도입된 객체를 초기화하는 데 사용되는 편리한 방법이다.

 

이는 "braced list(중괄호)"를 이용하여 만들 수 있는데 예를 들어 `{1, 2, 3}`은 정수의 배열을 만든다. 그리고 이 타입은 `std::initializer_list<int>`가 된다.

 

이는 함수에 인자로 넘길 때 벡터 대신 사용하기 유용하다.

#include <iostream>

int sum(const std::initializer_list<int>& list)
{
	int total = 0;
	for (auto& it : list)
		total += it;
	return total;
}

int main(void)
{
	auto list = {1, 2, 3}; // `std::initializer_list<int>`
	sum(list); // 6
	sum({1, 2, 3}); // 6;
	sum({}); // 0;
	return 0;
}

'C++ > Modern C++(11, 14, 17, 20)' 카테고리의 다른 글

[C++11] Forwarding References(Universal References)  (0) 2023.08.28
[C++11] Variadic templates  (0) 2023.08.28
[C++11] Static Assertions  (0) 2023.08.26
[C++11] auto  (0) 2023.08.26
[C++11] Lamda Expressions  (0) 2023.08.26

관련글 더보기