[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]
이름이 헷갈리게 네이밍 되어 있는데, lower_bound는 목표를 집어 넣을 수 있는 최소 위치를 upper_bound는 목표를 집어 넣을 수 있는 최대 위치를 반환해주기 때문에 이런 이름이 붙었다.
다르게 말하면
lower_bound는 목표보다 작지 않은 최소 원소를, upper_bound는 목표보다 큰 최소 원소를 반환해준다.
예를 들어, {1, 2, 3, 3, 3, 4, 5}에서 3을 각각 lower_bound, upper_bound로 검색했을 때
lower_bound는 세 개의 3 중 첫 번째 3의 위치를 반환해주며 upper_bound는 4의 위치를 반환해준다.
C++ 레퍼런스 참고
lower bound
upper bound