본문 바로가기

프로그래밍/C++

string::shrink_to_fit

C++11 부터 std::string 에 shrink_to_fit() 이라는 함수가 추가 되었다.


resize() 가 말그대로 size를 줄인다면, shrink_to_fit() 는 capacity를 줄이는 함수이다.


따라서 문자열을 축소할때 resize와 shrink_to_fit를 동시에 사용하면


실제 길이와 용량을 적절하게 줄일 수 있다.


그런데, shrink_to_fit 를 호출한다고 해서 반드시 capacity가 size와 일치하지는 않는다.


VC에서 string의 기본메모리인 15이하는 줄어들지 않으며,


실제테스트 해 본 결과, 약간의 버퍼를 유지하고 있다.



Shrink to fit
Requests the string to reduce its capacity to fit its size.

The request is non-binding, and the container implementation is free to optimize otherwise and leave the string with acapacity greater than its size.

This function has no effect on the string length and cannot alter its content.