Ортогональный поиск — различия между версиями
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); }