这两个函数功能就是二分查找
头文件:#include<algorithm>
upper_bound(i) 返回的是 键值为i 的元素可以插入的最后一个位置(上界)
lowe_bound(i) 返回的是 键值为i 的元素可以插入的位置的第一个位置(下界)
好像这两个都不能判断是否查找成功了
通常是用来插入元素的
看代码就懂了
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a[10]={1,1,2,2,3,7,9,22,25};//9个数字,注意要是排好序的
cout<<lower_bound(a,a+9,1)-a<<endl;//输出为0
//返回第一个比1大于或者等于的下标
cout<<upper_bound(a,a+9,1)-a<<endl;//输出为2
// 返回最后一个小于等于1的下标
cout<<lower_bound(a,a+9,100)-a<<endl;//输出为9
cout<<upper_bound(a,a+9,100)-a<<endl;//输出为9
//若val大于所以值就返回最后一个下标+1
cout<<lower_bound(a,a+9,-1)-a<<endl;//输出为0
cout<<upper_bound(a,a+9,-1)-a<<endl;//输出为0
//若val小于所以值就返回0,也就是第一个下标
cout<<lower_bound(a,a+9,25)-a<<endl;//输出为8
cout<<upper_bound(a,a+9,25)-a<<endl;//输出为9
cout<<*lower_bound(a,a+9,3)<<endl;
//这样输出,就是输出该值了,相当于a[lower_bound(a,a+9,3)]
return 0;
}