upper_bound()和lower_bound()

upper_bound()和lower_bound()在STL常用,配合起STL能大幅度减少代码量,因为upper_bound()和lower_bound()本身就是二分的一个集合函数,upper_bound()作用为返回一个数组中大于某个值的地址,lower_bound()作用为返回一个数组中大于等于某个值的地址,值得注意的是他们都返回的是地址,返回的是地址看起来很复杂,但减去数组首地址+1即可得到该数在数组中的位置,即使不减首地址,使用迭代器iterator一样能取出该值。

下面演示下如何使用upper_bound()和lower_bound():

普通数组:

返回在数组a中大于cnt的地址:upper_bound(a,a+n,cnt)

返回在数组a中大于等于cnt的地址:lower_bound(a,a+n,cnt)

返回在数组a中大于cnt的位置:(upper_bound(a,a+n,cnt)-a)+1

返回在数组a中大于等于cnt的位置:(lower_bound(a,a+n,cnt)-a)+1

vector:

返回在数组a中大于cnt的地址:upper_bound(v.begin(),v.end(),cnt)

返回在数组a中大于等于cnt的地址:lower_bound(v.begin(),v.end(),cnt)

返回在数组a中大于cnt的位置:(upper_bound(v.begin(),v.end(),cnt)-a)+1

返回在数组a中大于等于cnt的位置:(lower_bound(v.begin(),v.end(),cnt)-a)+1

全部评论

相关推荐

_mos_:要不是看评论区我都不知道你要找的是数分
点赞 评论 收藏
分享
rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务