lower_bound(val): val보다 크거나 같은 첫 반복자 위치를 반환한다.
upper_bound(val): val보다 큰 첫 반복자 위치를 반환한다.
- 둘 모두 이진 검색을 사용하므로 정렬된 상태에서만 사용해야 한다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void main()
{
vector<int> v = {6, 3, 1, 4, 7, 6, 2, 1};
cout << "lower_bound(4): " << *lower_bound(v.begin(), v.end(), 4) << endl;
cout << "upper_bound(4): " << *upper_bound(v.begin(), v.end(), 4) << endl << endl;
sort(v.begin(), v.end());
cout << "sort()" << endl << endl;
cout << "lower_bound(4): " << *lower_bound(v.begin(), v.end(), 4) << endl;
cout << "upper_bound(4): " << *upper_bound(v.begin(), v.end(), 4) << endl;
}
출력
lower_bound(4): 4
upper_bound(4): 7
sort()
lower_bound(4): 4
upper_bound(4): 6
'자료구조 & 알고리즘 > 기타' 카테고리의 다른 글
정답률보다 오답률이 높을 때 (0) | 2023.02.26 |
---|---|
정규 표현식으로 문자열 교체 (0) | 2023.02.21 |
multiset, multimap에서 1개 원소만 삭제 (0) | 2023.02.19 |
vector에서 중복 원소 제거 (0) | 2023.02.07 |
유클리드 호제법(Euclidean algorithm) (0) | 2023.02.04 |