반응형

C++11 std::vector<int> 초기화 방식 비교

  • C++에서 std::vector<int>를 초기화하는 방법에는 여러 가지가 있습니다.
  • 아래 세 가지 방식의 차이를 비교해 보겠습니다.


std::vector<int> v1 = {1,2,3};

  • 초기화 방식 : 중괄호 {}를 이용한 리스트 초기화 (C++11 이후 가능)
  • 결과 : {1, 2, 3} 값이 담긴 std::vector<int> 생성
  • 내부 동작 : {1,2,3}std::initializer_list<int>로 변환되어 벡터가 생성됨.


std::vector<int> v2{1,2,3};

  • 초기화 방식 : std::initializer_list<int>를 이용한 직접 초기화 (C++11 이후 가능)
  • 결과 : {1, 2, 3} 값이 담긴 std::vector<int> 생성
  • 내부 동작 : std::vector<int>initializer_list<int>를 받는 생성자가 호출됨.


std::vector<int> v3(3);

  • 초기화 방식 : 크기 기반 생성자 호출
  • 결과 : {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
반응형

+ Recent posts