deque::shrink_to_fit

deque::shrink_to_fit (사용하지 않는 용량 해제 요청)

미사용 용량의 제거를 요청하는 멤버 함수예요. 비강제 요청이라 구현에 따라 반영되지 않을 수 있어요.

출처: cppreference

본문

shrink_to_fit()은 미사용 용량의 제거를 요청해요.

void shrink_to_fit();

시퀀스의 크기를 바꾸지 않고 메모리 사용을 줄이려는 비강제 요청이에요. 요청이 이행될지는 구현에 달려 있어요.

  • 모든 반복자(끝 반복자 포함)와 모든 요소 참조가 무효화돼요.
  • Tstd::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 내부가 블록 단위라 "딱 맞게" 줄어들지는 않을 수 있어요.

더 알아보기 (Learn more)

cppreference