반응형
C++
에서std::vector<int>
를 초기화하는 방법에는 여러 가지가 있습니다.- 아래 세 가지 방식의 차이를 비교해 보겠습니다.
- 초기화 방식 : 중괄호
{}
를 이용한 리스트 초기화 (C++11
이후 가능) - 결과 :
{1, 2, 3}
값이 담긴std::vector<int>
생성 - 내부 동작 :
{1,2,3}
은std::initializer_list<int>
로 변환되어 벡터가 생성됨.
- 초기화 방식 :
std::initializer_list<int>
를 이용한 직접 초기화 (C++11 이후 가능) - 결과 :
{1, 2, 3}
값이 담긴std::vector<int>
생성 - 내부 동작 :
std::vector<int>
의initializer_list<int>
를 받는 생성자가 호출됨.
- 초기화 방식 : 크기 기반 생성자 호출
- 결과 :
{0, 0, 0}
(3개의 기본값0
으로 초기화된 벡터) - 내부 동작 : 크기
3
을 인자로 받는 생성자가 호출되며, 기본값0
으로 초기화됨.
-
선언 방식 벡터 내용 설명 v1 = {1,2,3}
{1,2,3}
initializer_list<int>
로 초기화v2{1,2,3}
{1,2,3}
initializer_list<int>
를 이용한 직접 초기화v3(3)
{0,0,0}
크기 3
, 기본값0
으로 초기화
- 이처럼 중괄호
{}
와 소괄호()
를 어떻게 사용하느냐에 따라 결과가 달라지므로, 원하는 동작을 정확히 이해하고 사용하는 것이 중요합니다. 🚀
- 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄
- 일부 모바일 환경에서는 ❤️ 버튼이 보이지 않습니다.
728x90
반응형
'C C++' 카테고리의 다른 글
Modern C++ 문자열(string) 발전사 (0) | 2025.03.16 |
---|---|
C++14 긴 2진수(binary)를 가독성 좋게 표현하는 방법 (0) | 2025.03.15 |
C++ 변수 초기화 {} 와 () (0) | 2025.03.15 |
C++17 std::monostate : std::variant의 기본 상태를 위한 해결책 (0) | 2025.03.15 |
C++17 if constexpr 조건부 컴파일 (0) | 2025.03.15 |