STL: lower_bound, upper_bound用法(C++)

ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val) 
返回一个非递减序列[first, last)中的第一个大于等于值val的位置。


ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)
 返回一个非递减序列[first, last)中第一个大于val的位置。


    直观上,如下图所示,如果 val = 2,则情况如下

                                                                     STL: lower_bound, upper_bound用法(C++)_第1张图片

如果 val = 4,由于没有值等于 4 的元素,则两者均返回大于 4 的第一个元素,如下

                                               STL: lower_bound, upper_bound用法(C++)_第2张图片

如果 val = 5,如下

                                               STL: lower_bound, upper_bound用法(C++)_第3张图片

如果 val = 6,则两者均找不不到

                                               STL: lower_bound, upper_bound用法(C++)_第4张图片

你可能感兴趣的:(STL)