#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1, 3, 4, 7, 9 };
cout << upper_bound(arr.begin(), arr.end(), -1) - arr.begin() << '\n'; // 0
cout << upper_bound(arr.begin(), arr.end(), 3) - arr.begin() << '\n'; // 2
cout << upper_bound(arr.begin(), arr.end(), 5) - arr.begin() << '\n'; // 3
return 0;
}
⭐ 그렇다면 찾는 값을 초과하는 수가 배열에 없다는 어떤 값을 출력할까?
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1, 3, 4, 7, 9 };
cout << upper_bound(arr.begin(), arr.end(), 9) - arr.begin() << '\n'; // 5
cout << upper_bound(arr.begin(), arr.end(), 10) - arr.begin() << '\n'; // 5
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1, 3, 4, 7, 9 };
cout << lower_bound(arr.begin(), arr.end(), -1) - arr.begin() << '\n'; // 0
cout << lower_bound(arr.begin(), arr.end(), 1) - arr.begin() << '\n'; // 0
cout << lower_bound(arr.begin(), arr.end(), 2) - arr.begin() << '\n'; // 1
return 0;
}
⭐ 그렇다면 찾는 값 이상의 값이 배열에 있지 않으면 어떤 값이 출력될까?
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1, 3, 4, 7, 9 };
cout << lower_bound(arr.begin(), arr.end(), 10) - arr.begin() << '\n'; // 5
return 0;
}