[[[문제]]]
다른 글들을 보면 이코드 저코드에서 심심치 않게 사용한 것을 볼 수 있다. 균일 초기화라고 한다.
c++11에서 도입되었고 {}를 사용하여 초기화 한다.
다른 설명을 하려는건 아니고, 이것을 사용할 때 헷갈릴 수 있는 부분 하나를 지적하고자 한다.
축소 변환이 안된다는 것이다.
[[[관찰]]]
벡터에서 균일 초기화를 하는 것은
v.push_back(1), v.push_back(2), v.push_back(3) 이런 식으로 push_back()을 하는 것이다.
직접 push_back을 해보면 알아서 int type으로 형변환 된다.
축소 변환이 안된다는 것을 알 수 있다.
형 변환에 오류를 방지하기 위해서 일부로 막아놓은 것이다.
이왕 한 김에 균일 초기화를 사용하는 몇가지 예시를 더 적어보도록 하겠다.
==예제==
array도 가능
둘 다 동일한 초기화 방법이고 컴파일러는 두 표현을 같은 방식으로 처리한다.
배열도 가능
구조체도 가능
클래스도 가능
C++11에서는 생성자를 이용한 객체 생성을 균일 초기화로 가능
x{num1}, y{num2}에서 쓰이는 brace는 constructor initialization list라고 한다. 이니셜라이저 리스트. 초기화 리스트.
brace: 대괄호
'---C++ 역량 강화--- > STL 공부' 카테고리의 다른 글
copy (0) | 2024.06.04 |
---|---|
stable_sort (0) | 2024.06.04 |
string class 문자열 합치기 (0) | 2024.06.03 |
to_string, to_wstring (0) | 2024.06.03 |
class 대신 struct 쓰는 이유 (0) | 2024.05.31 |