vector<int>::iterator it;
//vector<int> d = { 1,2,3,4,5,5,6,7,8,9 };//升序数组
//it = upper_bound(d.begin(), d.end(),5); //第一个大于val
// <=>it= upper_bound(d.begin(), d.end(), 5, less<int>());//默人用的less比较方式
//it = lower_bound(d.begin(), d.end(), 5); //第一个大于等于val
// <=>it = lower_bound(d.begin(), d.end(), 5, less<int>());
//it = lower_bound(d.begin(), d.end(), 5, greater<int>()); //小过一半就找不到
//it= upper_bound(d.begin(), d.end(), 5, greater<int>());//查找不到
vector<int> d = { 9,8,7,6,5,5,4,3,2,1 }; //降序数组
//it = upper_bound(d.begin(), d.end(),5); //查找不到
// it = lower_bound(d.begin(), d.end(), 5); //大过一半就找不到
//it = upper_bound(d.begin(), d.end(), 5, greater<int>());//第一个小于val
it = lower_bound(d.begin(), d.end(), 5, greater<int>());//第一个小于等于val
if (it != d.end()) {
cout << *it <<endl;
}
else {
cout << "out of range"<<endl;
}