upper_bound

使用C++的STL的二分模板时,对于自定义函数如何写非常疑惑,在这里记录一下

template <class ForwardIterator, class T, class Compare>
  ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last,
                               const T& val, Compare comp);

lower_bound和upper_bound的原型完全相同,不同的是自定义函数的参数顺序相反

upper_bound comp的第一个参数必须是 val,第二个是迭代器。

lower_bound comp的第一个参数必须是迭代器,第二个是val。

comp代表的语义:当comp返回TRUE时,代表第一个参数在第二参数的前面(这个关系着大小顺序)。

comp 代表的就是小于没有等于,这时候的功能才正确。(所以在自定义函数中不应该涉及等于情况)。

posted @ 2022-05-20 21:04  yiweiw  阅读(263)  评论(0)    收藏  举报