头文件:
#include<algorithm>
作用:
查找第一个大于给定数的元素或位置
在从小到大的排序数组中,
1.容器
(1).返回元素
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> v;
int main()
{
int a[5] = {1,2,3,4,6};
for(int i = 0;i < 5;i++)
v.push_back(a[i]);
vector<int>::iterator it = upper_bound(v.begin(),v.end(),3);
printf("%d
",*it);
return 0;
}
(2).返回位置
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> v;
int main()
{
int a[5] = {1,2,3,4,6};
for(int i = 0;i < 5;i++)
v.push_back(a[i]);
int pos = upper_bound(v.begin(),v.end(),3)-v.begin();
printf("%d
",pos);
return 0;
}
2.数组
(1).返回元素
#include<cstdio> #include<algorithm> using namespace std; int main() { int a[5] = {1,2,3,4,6}; int *it = upper_bound(a,a+5,3); printf("%d ",*it); return 0; }
(2).返回位置
#include<cstdio> #include<algorithm> using namespace std; int main() { int a[5]={1,2,3,4,6}; int pos = upper_bound(a,a+5,3)-a; printf("%d ",pos); return 0; }
在从小到大的排序数组中,
upper_bound( begin,end,num,greater<type>() )
其他用法与upper_bound(从小到大的那个)相似
说明,要查找的有序序列必须是合法的,已经被排序的序列。