티스토리 뷰

반응형
vector는 배열을 대체하는 좋은 컨테이너 입니다.

vector에 값을 넣으면 size 하고 capacity가 늘어나죠. 그러데 capacity가 만약에 1000까지 늘어난 후에

원소를제거해 size 10으로 해도 vector의 capacity는 줄어 들지 않습니다. 이때 쉽게 capacity를 줄이는

방법이 있습니다.

vector<Members><members>.swap(members);
vector<Members><members> 하면 members의 사본이 만들어 집니다. 복사 생서자의 원리로...

이때 사본은 capacity가 size만큼 줄어든 것입니다. 그런 후에 swap를 하면 줄어든 사본과 원래의 members가
바뀌어 버리는 거죠. 그리고 사본으로 들어온 원본은 임시 객체이므로 사라지게 되구요.

자료 출처: Effectice STL
반응형