首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lower_bound与二进制搜索

Lower_bound与二进制搜索
EN

Stack Overflow用户
提问于 2014-12-10 22:52:14
回答 1查看 2K关注 0票数 5

我正在学习一些STL函数,我遇到了这个函数-- 定界 .I am --为什么人们不使用lower_bound而不是二进制搜索,因为两者都做同样的事情,它们都具有O(log )复杂性。

用lower_bound编写一行代码不是比用二进制搜索编写8-9行if- their语句更好吗?还是因为人们不经常使用它,所以它们对lower_bound是否有任何限制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-10 23:11:14

binary_search的名字很差。它通过二进制搜索告诉您集合中是否存在项。它并没有告诉你在哪里。

lower_bound告诉您项应该放在集合中的位置,但并不实际验证项是否存在于集合中的那个位置。您需要检查自己(并且小心不要取消对end迭代器的引用!)

equal_range告诉您项目应该去哪里,以及(根据firstsecond之间的距离)在范围内实际存在多少项,如果项目不存在则为零。在我看来,这是最有用的。它比lower_bound稍慢,但不太慢。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27412359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档