STL의 컨테이너는 처음할당한 메모리 크기보다 데이터가 많아질경우.
메모리를 재할당 하는 작업을 한다.
원래 갖고있던 메모리의 데이터를 새 메모리(크기가 더 큰)에 복사하는 방식으로 재할당을 한다고 한다.
원래 메모리의 용량을 늘리는것이 아닌. 더큰 메모리를 만들어서 그곳에 복사 하고 이전 데이터를 삭제하는 식이다.
이것은 속도상 효율적이지 않다.
그래서 reserve함수를 사용하게 되는데. 이 함수를 사용하면. 메모리 초기값을 잡아놓고 하는것이기 때문에
필요없는 재할당을 최소화 시켜준다.
resize함수는. 내부용량을 딱 정해놓고 사용하는 것이다.
만약에 사이즈를 10으로 해놨을 경우. 무조건 사이즈는 10이된다.
10보다 큰 데이터가 들어오면 끝의 요소들은 버려지게 된다.
내부를 10개보다 적게 채워도 사이즈는 10으로 유지하게 된다.
'프로그래밍 > C++' 카테고리의 다른 글
자잘한 최적화 팁 (0) | 2018.03.27 |
---|---|
c++매크로에서 while(0)사용하는 이유 (0) | 2018.03.14 |
함수포인터 활용 (0) | 2016.09.01 |
c++ 파일 입출력 (텍스트 파일을 읽어서 원하는 정보 얻어오기) (1) | 2016.08.11 |
벡터 clear (0) | 2016.07.13 |