Defined in header <algorithm>        template< class ForwardIt, class T >
ForwardIt upper_bound( ForwardIt first, ForwardIt last, const T& value );   (1)     template< class ForwardIt, class T, class Compare >
ForwardIt upper_bound( ForwardIt first, ForwardIt last, const T& value, Compare comp );   (2)    
Returns an iterator pointing to the first element in the range [first, last) that is greater than value.
The range [first, last) must be at least partially ordered