upper_bound 源码

template <class ForwardIterator, class T>
ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val)
{
ForwardIterator it;
iterator_traits<ForwardIterator>::difference_type count, step;
count = std::distance(first,last);
while (count>0)
{
it = first; step=count/2; std::advance (it,step);
if (!(val<*it)) // or: if (!comp(val,*it)), for version (2)
{ first=++it; count-=step+1; }
else count=step;
}
return first;
}

lower_bound 源码

template <class ForwardIterator, class T>
ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val)
{
ForwardIterator it;
iterator_traits<ForwardIterator>::difference_type count, step;
count = distance(first,last);
while (count>0)
{
it = first; step=count/2; advance (it,step);
if (*it<val) { // or: if (comp(*it,val)), for version (2)
first=++it;
count-=step+1;
}
else count=step;
}
return first;
}

若val在原数组中存在,则upper_bound返回最后一个val的位置,lower_bound返回第一个val的位置

若val在原数组中不存在,则upper_bound和lower_bound返回的都是val因放在哪个位置而不影响原序列

最新文章

  1. slf4j
  2. pandas 数据检索
  3. AD账号创建日期、最近一次登录时间、最近一次重置密码时间查询
  4. 微软职位内部推荐-Senior Development Engineer
  5. Linux mount/unmount命令(转)
  6. Leetcode 之Convert Sorted List to Binary Search Tree(55)
  7. Unique Paths [LeetCode]
  8. POJ2284 That Nice Euler Circuit (欧拉公式)(计算几何 线段相交问题)
  9. java socket编程基础(转)
  10. UVa 10256 - The Great Divide 判断凸包相交
  11. UVA 796 - Critical Links (求桥)
  12. IFeatureClass.Search中的 Recycling 参数 - 浅谈.
  13. IBM Python 技术专题
  14. hibernate tools连接数据报错
  15. 【经验】JavaScript
  16. 关于static的一点点总结
  17. PMP三点
  18. hashmap相关面试题
  19. 关于dos命令行脚本编写
  20. ajax跨域请求数据

热门文章

  1. C++开发人脸性别识别教程(7)——搭建MFC框架之界面绘制
  2. 简单来说一下java中的泛型,ssh中dao层使用会简化代码量
  3. poj3249 Test for job 【图的DAG dp】
  4. 安装MYSQL错误“conflicts with file from package mysql-libs-*” 解决方法
  5. 项目复习期总结3:CSS引入方式,凝视,命名规范,背景,行高,文本属性
  6. Oracle分析函数ntile
  7. yolo源码解析(1):代码逻辑
  8. 用ksh运行一个helloworld
  9. python 3.x 学习笔记14 (socket_ssh and socket_文件传输)
  10. 【算法】Bellman-Ford算法(单源最短路径问题)(判断负圈)