출처 : https://chanhuiseok.github.io/posts/algo-55/
정리가 잘 되어있는 글을 요약하자면,
lower_bound : 찾으려는 key 값보다 같거나 큰 숫자가 배열 몇 번째에서 처음 등장하는지 찾기 위함
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[6] = { 1,2,3,4,5,6 };
cout << "lower_bound(6) : " << lower_bound(arr, arr + 6, 6) - arr;
// 결과 -> lower_bound(6) : 5
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1,2,3,4,5,6,6,6 };
cout << "lower_bound(6) : " << lower_bound(arr.begin(), arr.end(), 6) - arr.begin();
// 결과 -> lower_bound(6) : 5
return 0;
}
Lower bound는 이상(<=)
Upper bound는 초과(<)
인점을 기억해야합니다.
upper_bound : 용도 : 찾으려는 key 값을 초과하는 숫자가 배열 몇 번째에서 처음 등장하는지 찾기 위함
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1,2,3,4,5,6 };
cout << "upper_bound(3) : " << upper_bound(arr.begin(), arr.end(), 3) - arr.begin();
// 결과 -> upper_bound(3) : 3
return 0;
}
'C++ STL, 알고리즘' 카테고리의 다른 글
DFS 활용 Flood Fill (0) | 2023.10.24 |
---|---|
BFS, DFS c++ (0) | 2023.10.23 |
float vs double c++ 부동소수점 문제 (0) | 2023.10.12 |
C++ 입출력 가속 코드 (1) | 2023.10.06 |
[STL] vector unique 함수 (0) | 2023.10.05 |