c++ 结构体和vector进行lower_bound和upper_bound
发布日期:2021-06-21 09:00:15
浏览次数:3
分类:技术文章
本文共 1209 字,大约阅读时间需要 4 分钟。
总述:
介绍结构体数组和包含结构体的vector怎么样使用lower_bound进行二分查找,upper_bound同理。
前提:
lower_bound:返回数组中第一个大于等于该元素的下标,int aa = lower_bound(array,array+arrayLen,num) - array;
upper_bound:返回数组中第一个大于该元素的下标:int aa = upper_bound(array,array+arrayLen,num) - array;
结构体中查找:
把我们需要查找的数封装成一个结构体。然后才可以在结构体重进行查找。即使我们只需要针对某一维进行查找,也需要把整个结构体构造出来。
代码如下:
struct MY{ int a,b; MY(){} MY(int a,int b):a(a),b(b){} bool operator<(const MY m)const{ //定义比较方式,这一步很重要 return a>num; sort(m,m+10);//进行二分之前需要排序 int aa = lower_bound(m,m+10,MY(num,0)) - m; //需要把我们查找的数封装成一个结构体才能进行查找。 cout<<"查到位置为:"< <
这里我只需要查找第一维,并且我对第一维进行了排序,只有有序数列才可以进行二分,然后在查找的时候,把其他维置零即可。但是必须要封装成一个结构体
vector中也是同理:
代码:
struct MY{ int a,b; MY(){} MY(int a,int b):a(a),b(b){} bool operator<(const MY m)const{ //定义比较方式,这一步很重要 return ave; for(int i=0;i<10;i++){ ve.push_back(MY(i+1,2*i)); cout< <<" "< < >num; sort(ve.begin(),ve.end());//进行二分之前需要排序 int aa = lower_bound(ve.begin(),ve.end(),MY(num,0)) - ve.begin(); //需要把我们查找的数封装成一个结构体才能进行查找。 cout<<"查到位置为:"< <
ve.begin()指向vector的开始,ve.end()指向vector的结尾。
结果如下:
以上
转载地址:https://blog.csdn.net/lwgkzl/article/details/82851346 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月04日 13时42分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Kubernetes基础:MacOS上设定Dashboard
2019-04-27
#力扣 MySQL196. 删除重复的电子邮箱 @FDDLC
2019-04-27
Seekbar 属性 记录
2019-04-27
textview设置独特字颜色和背景颜色
2019-04-27
背景+带边框(圆角)的textview怎么设置
2019-04-27
第二技能
2019-04-27
算法的设计
2019-04-27
JAVA Freemarker(9)---常见语法大全
2019-04-27
Java MyBatis(1)--- Generator 详解
2019-04-27
Java MyBatis(2)--- generatorConfig.xml详解与运行
2019-04-27
VueJS(5)---初步练习(5题)
2019-04-27
mysql(3)-- 修改root密码命令小结
2019-04-27
JQuery(3)--冒泡效果
2019-04-27
异常(2)-- UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/项目包名
2019-04-27
Android软键盘(1)---输入法界面管理(打开/关闭/状态获取)
2019-04-27
Android动态设置view的高度宽度
2019-04-27
css3 属性 text-overflow 实现截取多余文字内容 以省略号来代替多余内容
2019-04-27
vue 事件总线EventBus的概念、使用以及注意点
2019-04-27
JavaScript 用七种方式教你判断一个变量是否为数组类型
2019-04-27