13 #ifndef INCLUDED_UTILITY_ITER_UTIL_hh 
   14 #define INCLUDED_UTILITY_ITER_UTIL_hh 
   25 template <
typename B
idirectionalIterator, 
typename T>
 
   27   BidirectionalIterator last,
 
   29   BidirectionalIterator before = std::lower_bound(first, last, value);
 
   31   if ( before == first ) 
return first;
 
   32   if ( before == last )  
return --last; 
 
   34   BidirectionalIterator after = before;
 
   37   return (*after - value) < (value - *before) ? after : before;
 
   42 #endif  // INCLUDED_UTILITY_ITER_UTIL_hh 
BidirectionalIterator find_closest(BidirectionalIterator first, BidirectionalIterator last, const T &value)
Returns an iterator on the sorted range [first, last) nearest to value. If value is equidistant betwe...