The ForwardIter lower_bound(ForwardIter first, ForwardIter last, const _Tp& val) algorithm returns the first position in a non-decreasing sequence [first, last) that is greater than or equal to the value val.
The ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val) algorithm returns the first position in a non-decreasing sequence [first, last) greater than val.