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...