二进制搜索c ++与比较

alt*_*are 1 c++ binary-search

我想在排序的向量V上对c ++执行二进制搜索.特别是,我对找到向量条目的确切值不感兴趣.我想找到满足V [j-1] <= X <V [j]的条目的位置j,其中X是输入值.

例如:对于向量v = {1,4,7,12,17,55}和X = 8,函数应返回3.

我可以使用具有O(log(2))复杂度的STD函数binary_search吗?

如何?

非常感谢,

人.

Bar*_*ski 8

其标准函数是upper_bound和lower_bound.阅读这些

http://www.cplusplus.com/reference/algorithm/upper_bound/ http://www.cplusplus.com/reference/algorithm/lower_bound/

如果你向下滚动这些页面,你会发现应该清楚的例子:)