Ортогональный поиск — различия между версиями
| Proshev (обсуждение | вклад)  (Новая страница: «== Простейший случай ==  Пусть дана прямая с точками на ней и отрезок. Необходимо указать, к...») |  (→Простейший случай) | ||
| Строка 7: | Строка 7: | ||
| Код реализации: | Код реализации: | ||
| − | template<class RauIter, class OutIter, class Scalar> OutIter range_search(RauIter p, RauIter q, OutIter out)  | + |  template<class RauIter, class OutIter, class Scalar> OutIter range_search(RauIter p, RauIter q, OutIter out) | 
| − | { | + |  { | 
| − | return std::copy(lower_bound(p, q, l), upper_bound(p, q, r), out); | + |     return std::copy(lower_bound(p, q, l), upper_bound(p, q, r), out); | 
| − | } | + |  } | 
| == Сбалансированное дерево поиска == | == Сбалансированное дерево поиска == | ||
Версия 21:48, 23 апреля 2012
Содержание
Простейший случай
Пусть дана прямая с точками на ней и отрезок. Необходимо указать, какие из изначальных точек лежат на этом отрезке.
Данная задача решается с помощью функций из STL - upper_bound и lower_bound
Код реализации:
template<class RauIter, class OutIter, class Scalar> OutIter range_search(RauIter p, RauIter q, OutIter out)
{
   return std::copy(lower_bound(p, q, l), upper_bound(p, q, r), out);
}
