[알고리즘] lower_bound, upper_bound (C++)


[알고리즘] lower_bound, upper_bound (C++)

조건 : 탐색을 진행할 array, vector는 오름차순으로 정렬되어 있어야 한다. lower_bound lower_bound(3)을 진행하고 싶다. 배열 arr의 첫 시작지점 부터 탐색하면서 처음으로 3이 나오는 배열의 위치(Iterator)를 반환한다. 위치를 반환한다고 한 이유는 lower_bound의 반환형은 Iterator 이기 때문이다. 실제로 몇 번째 인덱스인지 알고 싶다면, 아래 코드와 같이 lower_bound 값에서 배열 첫 번째 주소를 가리키는 배열의 이름을 빼 주면 된다. upper_bound upper_bound도 lower_bound와 똑같다. 다만 처음으로 숫자가 발견되는 곳의 iterator가 아닌, 마지막으로 발견되는 곳 다음칸의 iterator가 반환된다. 6이 마지막으로 나오는 index는..........



원문링크 : [알고리즘] lower_bound, upper_bound (C++)