头文件
四个函数均在头文件<algorithm>中
1. binary_search(begin,end,key)
用法:从begin到end查找元素key,若存在与key相等的元素,返回true,否则返回false。
例程:
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int a[6] = {1,2,3,4,5,6};
int k;
while(scanf("%d",&k) && k != 0)
{
if(binary_search(a,a+6,k))
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
}
输入:
1 5 7 0
输出:
Yes
Yes
No
2. lower_bound(begin,end,key)
用法:从begin到end查找元素key,分三种情况:
a. 若找到等于key的元素,返回一个iterator指向其中第一个相等的元素。
b. 若不存在等于key的元素且key小于它们的最大值,返回一个iterator指向第一个大于等于key的元素。
c. 若key大于等于它们的最大值,返回end。
例程:
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int a[6] = {1,3,4,6,7,10};
int k;
while(scanf("%d",&k) && k != 0)
{
int *tmp = lower_bound(a,a+6,k);
int poi = tmp-a+1;
printf("%d ",poi);
}
puts("");
}
输入:
1 3 5 7 9 11 0
输出:
1 2 4 5 6 7
3. upper_bound(begin,end,key)
用法: