我是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的值?

最佳答案

lower_bound返回


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


有关更多详细信息,请参见此处:lower_bound - cppreference

关于c++ - lower_bound(v.begin(),v.end(),x),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40579537/

10-13 06:29