STL 源代码分析 算法 stl_algo.h -- binary_search
2015-09-23 18:12
483 查看
本文为senlie原创。转载请保留此地址:http://blog.csdn.net/zhengsenlie
binary_search
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
描写叙述:利用 lower_bound 实现二分查找,返回 bool
源代码:
演示样例:
binary_search
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
描写叙述:利用 lower_bound 实现二分查找,返回 bool
源代码:
//version 1 template <class ForwardIterator, class T> bool binary_search(ForwardIterator first, ForwardIterator last, const T& value) { ForwardIterator i = lower_bound(first, last, value); return i != last && !(value < *i); } //version 2 template <class ForwardIterator, class T, class Compare> bool binary_search(ForwardIterator first, ForwardIterator last, const T& value, Compare comp) { ForwardIterator i = lower_bound(first, last, value, comp); return i != last && !comp(value, *i); }
演示样例:
int main() { int A[] = { 1, 2, 3, 3, 3, 5, 8 }; const int N = sizeof(A) / sizeof(int); for (int i = 1; i <= 10; ++i) { cout << "Searching for " << i << ": " << (binary_search(A, A + N, i) ? "present" : "not present") << endl; } } /* The output is: Searching for 1: present Searching for 2: present Searching for 3: present Searching for 4: not present Searching for 5: present Searching for 6: not present Searching for 7: not present Searching for 8: present Searching for 9: not present Searching for 10: not present */
相关文章推荐
- java socket 属性设置
- Java知识结构
- C语言中的知识点
- java Socket通讯(二)
- 【转】JXL: Java Excel API简易教程
- java中abstract和interface的區別(轉)
- java Socket通信(一)
- thinkphp 钩子的简单实现和总结
- c++里面的namespace
- eclipse调试java程序的九个技巧
- Java的整体认识--类的初步理解和第一个Java程序
- struts2修改prepare拦截器
- eclipse上cvs服务器端的配置
- C++的学习心得
- django-crontab实现Django定时任务
- uboot串口与标准输入输出代码详解
- 从《编程之美》买票找零问题说起,娓娓道来卡特兰数——兼爬坑指南
- Netbeans连接到SQL server2000 数据库
- OLAP与OLTP介绍
- java回调的理解