호빵의 IT 개발소

벡터의 재할당(Resize)란? 본문

자료구조와 알고리즘/자료구조와 알고리즘 맛보기

벡터의 재할당(Resize)란?

호빵Stack 2025. 3. 26. 20:59

벡터의 재할당(Resize)란?

  • 벡터 크기 또는 용량(capacity)을 변경하는 과정
  • 내부적으로 새 메모리 할당 후 기존 데이터 복사

 

재할당이 발생하는 경우

  • push_back() 등으로 capacity 초과
  • resize(n) 호출 시 현재 size보다 크면 새 공간 할당

 

예시

std::vector<int> v;

v.push_back(1); // capacity 부족 시 자동 재할당

v.resize(10);   // size를 10으로 늘림, 새 요소는 0으로 초기화

 

주의사항

  • 재할당 시 주소가 바뀐다 → 기존 포인터, 참조 무효화됨
  • 성능 이슈 발생 가능 → 많은 데이터 추가 시 reserve()로 미리 용량 확보 추천

 

요약: 벡터는 용량 초과 시 자동 재할당하며, 이 과정에서 복사 비용과 주소 변경이 발생함.

Comments