lower_bound(v.begin(),v.end(),x)

时间:2016-11-13 22:32:34

标签: c++ vector lower-bound

我是c ++的菜鸟,我刚看到这段代码

       x = v[lft]+k;
       low = lower_bound(v.begin(), v.end(), x) - v.begin();

       if(low >= n|| v[low] > x )
        low--;
       center = v[low];

如果向量中不存在x,则返回大于向量大小的值。这有助于搜索是否low >= n,但我无法弄清楚这种情况v[low] > x在哪种情况下会满足?应该low是否是x存在的索引,那怎么能有一个大于x的值?

1 个答案:

答案 0 :(得分:2)

lower_bound返回

  

迭代器指向范围[first, last)不小于的第一个元素(即大于或等于 )价值。

有关详情,请参阅此处:lower_bound - cppreference