본문 바로가기
C++ STL, 알고리즘

c++ lower_bound upper_bound

by wanna_dev 2023. 10. 13.

출처 : https://chanhuiseok.github.io/posts/algo-55/

 

알고리즘 - c++ lower_bound, upper_bound 활용하기

컴퓨터/IT/알고리즘 정리 블로그

chanhuiseok.github.io

정리가 잘 되어있는 글을 요약하자면,

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