'벡터'에 해당되는 글 1건

  1. 2016.09.03 벡터에서 reserve와 resize를 하는 이유
프로그래밍/C++2016. 9. 3. 18:03

STL의 컨테이너는 처음할당한 메모리 크기보다 데이터가 많아질경우.

메모리를 재할당 하는 작업을 한다.

원래 갖고있던 메모리의 데이터를 새 메모리(크기가 더  큰)에 복사하는 방식으로 재할당을 한다고 한다.

원래 메모리의 용량을 늘리는것이 아닌. 더큰 메모리를 만들어서 그곳에 복사 하고 이전 데이터를 삭제하는 식이다.

이것은  속도상 효율적이지 않다.

그래서 reserve함수를 사용하게 되는데. 이 함수를 사용하면. 메모리 초기값을 잡아놓고 하는것이기 때문에

필요없는 재할당을 최소화 시켜준다.


resize함수는. 내부용량을 딱 정해놓고 사용하는 것이다.

만약에 사이즈를 10으로 해놨을 경우. 무조건 사이즈는 10이된다.

10보다 큰 데이터가 들어오면 끝의 요소들은 버려지게 된다.

내부를 10개보다 적게 채워도 사이즈는 10으로 유지하게 된다.


Posted by JinFluenza