举例如下:
一个数组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)运行时错误相关推荐

  1. C++ STL: lower_bound 和 upper_bound

    接口声明 以下有两个不同的版本 lower_bound template <class ForwardIterator, class T>ForwardIterator lower_bou ...

  2. C++ STL lower_bound,upper_bound的使用总结

    头文件:#include 时间复杂度:一次查询O(log n),n为数组长度. lower_bound: 功能:查找非递减序列[first,last) 内第一个大于或等于某个元素的位置. 返回值:如果 ...

  3. BZOJ1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏

    此题非常一眼 就是直接分别将 x,y 坐标离散化 并在离散化之后做二维前缀和 二分一下答案,O(n^2) 的 check 即可 注意在 check 当中的二分 x - mid 的过程中,需要去二分 x ...

  4. 【备战NOIP】[算法总结] 二分查找

    二分是啥? 在有序的序列中进行折半查找,可以做到log n的时间查询. 咋二分? 将n个元素分成大致相等的两部分,取a[mid]与x做比较 如果x = a[n/2],则找到x,算法中止 如果x < ...

  5. 2017级算法模拟上机准备篇(一)

    回顾一下往年的考题知识点: The Last Battle!! 2014级算法期末上机 简单题--I wanna be the 升级者Ⅰ 结构体排序  STL:sort() 简单题--I wanna ...

  6. 大三 字节搜索推荐算法实习生面经分享

    无实习经历无面试经历,过来纯当体验以及试错了 通过笔试以及一轮面试进入夏令营,然后申请实习直接leader面 笔试题就不做分享了 一面 50min 流程:自我介绍--项目经历--基本知识--算法题 项 ...

  7. STL中的lower_bound() 和 upper_bound()

    C++ STL iterator lower_bound( const key_type &key ); iterator upper_bound( const key_type &k ...

  8. STL 二分查找 upper_bound和lower_bound用法

    STL中关于二分查找的函数有三个lower_bound .upper_bound .binary_search . 这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数. ...

  9. STL中的lower_bound和upper_bound的理解

    STL迭代器表述范围的时候,习惯用[a, b),所以lower_bound表示的是第一个不小于给定元素的位置 upper_bound表示的是第一个大于给定元素的位置. 譬如,值val在容器内的时候,从 ...

最新文章

  1. Python爬虫入门(5):URLError异常处理
  2. Delphi 中将对象作为参数传递的使用
  3. CVPR 2019笔迹识别论文:逆鉴别网络+八路Attention
  4. 地图与输出之间的基准面发生冲突_【地图技巧】荒野乱斗: 全球锦标赛全地图英雄推荐...
  5. 办公自动化-幻灯片中插入图片与表格-pptx模块-0225
  6. Nodejs课堂笔记02
  7. 28. 实现strStr()
  8. 【问题待解决】自定义控件设计界面报错,编译运行正常
  9. 【Matlab土壤分类】多类SVM土壤分类【含GUI源码 1398期】
  10. 查看git brach_Excel Go Brach – Excelebrations
  11. matlab 决策树 多叉树,决策树简介
  12. APISpace IP归属地API
  13. linux 帝国cms 刷新,帝国cms怎么自动刷新网站首页?(帝国CMS自动刷新首页的方法)...
  14. Power BI中突出显示矩阵的最大值与最小值
  15. 【OpenCV学习笔记 020】K-Means聚类算法介绍及实现
  16. [算法总结] LCA倍增法 dfs
  17. 什么是死锁以及避免死锁
  18. 爬虫期末考试笔记(选择题)
  19. 删除MAC系统自带的ABC输入法[亲测]
  20. 遭到强烈反对后,Apple推迟了扫描设备以查找虐待儿童图像的计划

热门文章

  1. java计算机毕业设计springboot+vue学生宿舍管理系统 elementui
  2. llvm clang esl 一些常用指令
  3. 中医济世促醒汤-----发作性睡病
  4. 黑马程序员————高新技术————JDK1.5新特性
  5. 数字驱动,智能发展 | 的卢深视三维全栈技术亮相宁波智博会
  6. 2020年鼠年正月十五 祝贺元宵节快乐
  7. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇“显示贪吃蛇”
  8. 问题分析报告--读取ORC文件报seek错误
  9. wms仓库管理软件的七大产品特点
  10. JAVA微信公众号开发之自动回复消息与图片