deque::shrink_to_fit
deque::shrink_to_fit (사용하지 않는 용량 해제 요청)
미사용 용량의 제거를 요청하는 멤버 함수예요. 비강제 요청이라 구현에 따라 반영되지 않을 수 있어요.
출처: cppreference
본문
shrink_to_fit()은 미사용 용량의 제거를 요청해요.
void shrink_to_fit();
시퀀스의 크기를 바꾸지 않고 메모리 사용을 줄이려는 비강제 요청이에요. 요청이 이행될지는 구현에 달려 있어요.
- 모든 반복자(끝 반복자 포함)와 모든 요소 참조가 무효화돼요.
T가std::deque<T, Allocator>로 MoveInsertable이 아니면 동작이 미정의예요(C++11 이후).- 복잡도: 최대 컨테이너 크기에 선형.
- 예외: 예외가 발생하면 아무 효과가 없어요(강한 예외 보장).
std::deque<int> d;
for (int i = 0; i < 10000; ++i) d.push_back(i);
// 잡다한 처리를 마친 뒤 남은 용량을 줄이고 싶다면
d.shrink_to_fit();
대량 삽입 후 용량이 남아 메모리를 아끼고 싶을 때 써요. 다만 deque 내부가 블록 단위라 "딱 맞게" 줄어들지는 않을 수 있어요.