책 정리/Effective STL
항목 45 : count, find, binary_search, lower_bound, upper_bound, 그리고 equal_range 를 제대로 파악해 두자.
최익필
2008. 9. 7. 14:31
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고,
도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필
왜냐하면, 각각의 역활이 다르기 때문에 구현이 다르다. 이 구현이 다르다는 의미는 속도, 부하가 다르다는 의미이다. 그러므로 제대로 파악하자는 취지에서 쓰여진 항목이다.
정리하자면 http://turboc.borlandforum.com/impboard/impboard.dll?action=read&db=cpp_tip&no=25
알고리즘 설명 링크
http://www.cplusplus.com/reference/algorithm/ <-- 영문
관련링크
http://lagoons.net/tt/612
http://ilu8318.egloos.com/861930
http://oldpie.yoonkn.com/cgi-bin/moin.cgi/EffectiveStlSum7#head-8765a52ea4020d38179e65fe51c6deee52b6d02b
왜냐하면, 각각의 역활이 다르기 때문에 구현이 다르다. 이 구현이 다르다는 의미는 속도, 부하가 다르다는 의미이다. 그러므로 제대로 파악하자는 취지에서 쓰여진 항목이다.
정리하자면 http://turboc.borlandforum.com/impboard/impboard.dll?action=read&db=cpp_tip&no=25
질문 (해야 할 작업들) |
사용할 알고리듬 |
사용할 멤버 함수 |
||
정렬되지 않은 범위 |
정렬된 범위 |
set 또는 map |
multiset 또는 multimap |
|
원하는 값이 있는가? |
find |
binary_search |
count |
find |
원하는 값이 있는가? 있다면 그 값을 가진 첫 번째 객체는 어디인가? |
find |
equal_range |
find |
find 또는 lower_bound |
원하는 값을 삽입할 첫 번째 위치는 어디인가? |
find_if |
lower_bound |
lower_bound |
lower_bound |
원하는 값을 삽입할 마지막 위치는 어디인가? |
find_if |
upper_bound |
upper_bound |
upper_bound |
원하는 값을 가진 객체는 몇 개인가? |
count |
equal_range |
count |
count |
원하는 값을 가진 객체의 모든 위치는? |
find (계속 호출) |
equal_range |
equal_range |
equal_range |
알고리즘 설명 링크
http://www.cplusplus.com/reference/algorithm/ <-- 영문
관련링크
http://lagoons.net/tt/612
http://ilu8318.egloos.com/861930
http://oldpie.yoonkn.com/cgi-bin/moin.cgi/EffectiveStlSum7#head-8765a52ea4020d38179e65fe51c6deee52b6d02b