2008.07.12 22:48 책 정리/Effective STL
이 이야기들은 전부 표준 STL 컨테이너에 관한 이야기이다. 만약 vectoer<int> vcInt 라면, vcInt.size() 또는 vcInt.empty() 를 말한다.

size() 함수는 컨테이너에 적재되어진 원소의 갯수를 반환해 주는 함수이고
empty() 함수는 컨테이너에 적재되언 원소가 하나도 없다면 TRUE 를 반환해 주는 함수이다.

이렇게 말하니 좀 어렵다
size() 함수는 몇개 있냐? 물어 볼때 쓰고
empty() 함수는 비워있냐? 물어 볼때 쓴다.

size()는 전부 count 해야 하는 비용을 물어야 하며,
empty()는 처음과 끝이 같은지만 비교하는 비용만 물면 된다.


여담으로..
vector 컨테이너는 스스로 카운팅을 하기 때문에 size() 나 empty() 나 똑같은 비용을 지불한다.(컨테이너 내부를 보고 있으면, 토 나온다...) 하지만 다른 컨테이너들은 비용을 지불하지 않기 때문에(.. 다른 컨테이너는 확인 안해봤다) 적어도 0과 비교 할것이라면 empty()가 싼 비용을 냈으면 냈지 size()보다 더 큰 비용을 내지 않는다는것을 보장(.. 이라고 생각 하는데) 한다.




posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요