lower_bound 与 upper_bound

每次使用  lower_bound 和 upper_bound 的时候,总是有些模糊,有些纠结。

下面我按自己理解的意思将lower_bound和upper_bound  作了一个简单的比较,留个笔记。

1.  函数使用

     lower_bound(first, end, val)

     upper_bound(first, end, val)

1.  lower_bound 和 upper_bound 的用的都是二分查找,故需要给的数组序列是排序的。

2.  lower_bound 返回的是第一个 大于等于 val 的位置,upper_bound 返回的是第一个大于val的位置

     例如: 有序数组  1, 5, 9, 11, 11, 13

     lower_bound(first, end, 5) - first  =  1

     upper_bound(first, end, 5) - frist =  2

     lower_bound(first, end, 6) - first = 2

     upper_bound(first, end, 6) - first = 2

     lower_bound(first, end, 11) - frist = 3

     upper_bound(first, end, 11) - first = 5




    


你可能感兴趣的:(C/C++)