STL(lower_bound)运行时错误
举例如下:
一个数组number序列为:4,25,11,48,69,72,96,100.设要插入数字3,9,111.pos为要插入的位置的下标
则
pos = lower_bound( number, number + 8, 3) - number,pos = 0.即number数组的下标为0的位置。
pos = lower_bound( number, number + 8, 9) - number, pos = 1,即number数组的下标为1的位置(即10所在的位置)。
pos = lower_bound( number, number + 8, 111) - number, pos = 8,即number数组的下标为8的位置(但下标上限为7,所以返回最后一个元素的下一个元素)。
所以,要记住:函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置,且last的位置是越界的!!~
返回查找元素的第一个可安插位置,也就是“元素值>=查找值”的第一个元素的位置
运行时错误:可能是数组越界;零作为除数;非法内存读取;系统栈过载;
解决方法:一般是前两者,找一下,将数组开大或者看除数;
例题:
A - Where is the Marble?
#include<bits/stdc++.h>
using namespace std;
int n,q;
int N[100000],Q[100000];
///*方法二 写一个寻找的函数,略有暴力
int find(int x){int i;for(i=0;i<n;i++){if(N[i]==x){printf("%d found at %d\n",x,i+1);return 1;}}return 0;
}
//*/
int main(){int i,count=0;while(scanf("%d%d",&n,&q)==2 && n!=0 && q!=0){count++;for(i=0;i<n;i++){scanf("%d",&N[i]);}std::sort(N,N+n);for(i=0;i<q;i++){scanf("%d",&Q[i]);}printf("CASE# %d:\n",count); for(i=0;i<q;i++){int pos=lower_bound(N,N+n,Q[i])-N;/* if(N[pos]==Q[i])方法 printf("%d found at %d\n",Q[i],pos+1);一 else printf("%d not found\n",Q[i]); } 方法一不用写函数,用 STL,二分查找,很快的; */ if(find(Q[i])==0)printf("%d not found\n",Q[i]);}
}return 0;}
STL(lower_bound)运行时错误相关推荐
- C++ STL: lower_bound 和 upper_bound
接口声明 以下有两个不同的版本 lower_bound template <class ForwardIterator, class T>ForwardIterator lower_bou ...
- C++ STL lower_bound,upper_bound的使用总结
头文件:#include 时间复杂度:一次查询O(log n),n为数组长度. lower_bound: 功能:查找非递减序列[first,last) 内第一个大于或等于某个元素的位置. 返回值:如果 ...
- BZOJ1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏
此题非常一眼 就是直接分别将 x,y 坐标离散化 并在离散化之后做二维前缀和 二分一下答案,O(n^2) 的 check 即可 注意在 check 当中的二分 x - mid 的过程中,需要去二分 x ...
- 【备战NOIP】[算法总结] 二分查找
二分是啥? 在有序的序列中进行折半查找,可以做到log n的时间查询. 咋二分? 将n个元素分成大致相等的两部分,取a[mid]与x做比较 如果x = a[n/2],则找到x,算法中止 如果x < ...
- 2017级算法模拟上机准备篇(一)
回顾一下往年的考题知识点: The Last Battle!! 2014级算法期末上机 简单题--I wanna be the 升级者Ⅰ 结构体排序 STL:sort() 简单题--I wanna ...
- 大三 字节搜索推荐算法实习生面经分享
无实习经历无面试经历,过来纯当体验以及试错了 通过笔试以及一轮面试进入夏令营,然后申请实习直接leader面 笔试题就不做分享了 一面 50min 流程:自我介绍--项目经历--基本知识--算法题 项 ...
- STL中的lower_bound() 和 upper_bound()
C++ STL iterator lower_bound( const key_type &key ); iterator upper_bound( const key_type &k ...
- STL 二分查找 upper_bound和lower_bound用法
STL中关于二分查找的函数有三个lower_bound .upper_bound .binary_search . 这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数. ...
- STL中的lower_bound和upper_bound的理解
STL迭代器表述范围的时候,习惯用[a, b),所以lower_bound表示的是第一个不小于给定元素的位置 upper_bound表示的是第一个大于给定元素的位置. 譬如,值val在容器内的时候,从 ...
最新文章
- Python爬虫入门(5):URLError异常处理
- Delphi 中将对象作为参数传递的使用
- CVPR 2019笔迹识别论文:逆鉴别网络+八路Attention
- 地图与输出之间的基准面发生冲突_【地图技巧】荒野乱斗: 全球锦标赛全地图英雄推荐...
- 办公自动化-幻灯片中插入图片与表格-pptx模块-0225
- Nodejs课堂笔记02
- 28. 实现strStr()
- 【问题待解决】自定义控件设计界面报错,编译运行正常
- 【Matlab土壤分类】多类SVM土壤分类【含GUI源码 1398期】
- 查看git brach_Excel Go Brach – Excelebrations
- matlab 决策树 多叉树,决策树简介
- APISpace IP归属地API
- linux 帝国cms 刷新,帝国cms怎么自动刷新网站首页?(帝国CMS自动刷新首页的方法)...
- Power BI中突出显示矩阵的最大值与最小值
- 【OpenCV学习笔记 020】K-Means聚类算法介绍及实现
- [算法总结] LCA倍增法 dfs
- 什么是死锁以及避免死锁
- 爬虫期末考试笔记(选择题)
- 删除MAC系统自带的ABC输入法[亲测]
- 遭到强烈反对后,Apple推迟了扫描设备以查找虐待儿童图像的计划
热门文章
- java计算机毕业设计springboot+vue学生宿舍管理系统 elementui
- llvm clang esl 一些常用指令
- 中医济世促醒汤-----发作性睡病
- 黑马程序员————高新技术————JDK1.5新特性
- 数字驱动,智能发展 | 的卢深视三维全栈技术亮相宁波智博会
- 2020年鼠年正月十五 祝贺元宵节快乐
- 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇“显示贪吃蛇”
- 问题分析报告--读取ORC文件报seek错误
- wms仓库管理软件的七大产品特点
- JAVA微信公众号开发之自动回复消息与图片