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
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.
'프로그래밍 > C++' 카테고리의 다른 글
long과 int는 크기가 같은데 같이 존재하는 이유 (0) | 2016.03.22 |
---|---|
C++11 새로운 Rand 함수를 써보자 (0) | 2016.03.10 |
C++ 컴파일오류 빌드오류 링크 (0) | 2016.02.12 |
C++11 람다식 정리(lamda) (0) | 2016.02.01 |
Visual C++ 데이터 형식(범위) (0) | 2016.01.29 |