template <class T> const T* bin_search( const T& val, const T* b, const T* e ); template <class T> const T* bin_search_r( int (*rel)(const T)*, const T)*), const T& val, const T* b, const T* e );
These functions find the rightmost element in a sorted array equal to val and return a pointer to it. They return 0 if no such value exists.
template <class T> const T* bin_search( const T& val, const T* b, const T* e );
Uses T::operator< to find the element.
template <class T> const T* bin_search_r( int (*rel)(const T)*, const T)*), const T& val, const T* b, const T* e );
Uses rel to find the element.
If N is the size of the array, then complexity is O(lgN). At most lgN tests of the relation are done.
Because a Block (see Block(3C++)) can always be used wherever an array is called for, Array Algorithms can also be used with Blocks. In fact, these two components were actually designed to be used together.