STL(已排好序的集合之间的查找)

 STL提供在排好序的数组上进行二分查找的算法
binary_search lower_bound upper_bound

(1)在从小到大排好序的基本类型数组上进行二分查找
binary_search(数组名+n1,数组名+n2,值); 下标为n2的元素不在查找区间内 在该区间内查找"等于"值”的元素返回值为true(找到)或false(没找到)

在用自定义排序规则排好序的、元素为任意的T类型的数组中进行二分查找
binary_search(数组名+n1,数组名+n2,值,排序规则结构名()); 

(2)在对元素类型为T的从小到大排好序的基本类型的数组中进行查找
T * lower_bound(数组名+n1,数组名+n2,值);返回值是指针*p,*p 是查找区间里下标最小的,大于等于"值" 的元素。如果找不到,p指向下标为n2的 元素
(3)在元素类型为T的从小到大排好序的基本类型的数组中进行查找
T * upper_bound(数组名+n1,数组名+n2,值);

返回一个指针 T * p;
*p 是查找区间里下标最小的,大于"值"的元素。如果找不到,p指向下标为n2的元素
 

 

 

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
    int a[5]={1,6,4,3,9};
    sort(a,a+5);
    printf("result:%d\n",binary_search(a,a+5,4));//返回值为0或1,1
    printf("result:%d\n",*lower_bound(a,a+5,6));//大于等于6的下标最小的元素,6
    printf("result:%d\n",*upper_bound(a,a+5,6));//大于6的下标最小的元素,9
}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值