resize(), reserve() shrink_to_fit()
vector의 메모리 예약
> 재할당 및 복사의 연산을 줄이고, 필요한 만큼만 예약하여 사용하는 방법
reserve() 공간예약
>>필요 없이 메모리가 재할당 되는 것을 방지
재할당 횟수 를 최소화 해주면서 컨테이너 용량을 최소 n크기 만큼 잡아놓고 쓰기 때문에
그 용량을 넘지 않는 이상 재할당을 발생하지 않는다.
resize() 공간예약 + 안의 모든 공간을 특정한 값으로 채운다.
>> 컨테이너 개수를 무조건 n으로 맞추고 더 넣거나 넣지 않거나 하더라도 size()는 무조건
n개로 설정된다. 할당된 개수보다 요소가 더 많을 경우 끝에 있는 요소는 버려진다.
shrink_to_fit()
>> 여분의 메모리 공간을 해제하는 용도. 백터의 용량이 백터 크기와 같게 설정된다.
백터 크기가 더 이상 변경되지 않을 때 사용하면 유용한다.
참고 블로그
vector resize()와 reserve()의 차이점 C++ :: SpiritLink (tistory.com)
vector resize()와 reserve()의 차이점 C++
reserve()는 공간이 예약된다. 배열을 만들때 int array[크기] 하는것과 같다. 만약 앞으로 데이터가 자주 추가된다면 벡터가 가득 찼을때 스스로 공간을 늘리지 않기 때문에 성능을 더 향상할 수 있
spiritlink.tistory.com
https://computer-science-student.tistory.com/84
[c++] std::vector의 reserve(), resize(), shrink_to_fit() 함수
reserve(n) 함수 reserve 함수는 필요 없이 메모리가 재할당 되는 것을 방지한다. 이 함수를 사용함으로 인해 재할당 횟수 를 최소화 시켜준다. 컨테이너 용량을 최소 n크기 만큼 잡아놓고 쓰기 때문
computer-science-student.tistory.com