Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

query(Predicates const &, OutIter)

Boost , Chapter 1. Geometry , boost::geometry::index::rtree

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Найдены значения, соответствующие принятым предикатам, например, ближайшим к некоторой точке и/или пересекающим некоторую коробку.

Description

Эта функция запроса выполняет пространственные и k-ближайшие соседские поиски. Это позволяет пройти набор предикатов. Ценности будут возвращены, только если все предикаты будут выполнены.

Spatial predicates

Пространственные предикаты могут генерироваться одной из функций, перечисленных ниже:

Можно отрицать пространственные предикаты:

Satisfies predicate

Это особый вид предиката, который позволяет передавать определяемую пользователем функцию или объект функции, который проверяет, должно ли значение быть возвращено запросом. Он генерируется:

Nearest predicate

При прохождении ближайшего предиката будет выполнен поиск k-ближайшего соседа. Этот запрос приведет к возвращению значений k в итератор вывода. К запросу может быть передан только один ближайший предикат. Он может быть сгенерирован:

Connecting predicates

Предикаты могут передаваться вместе с<operator&&()>.

Synopsis
template<typename Predicates, typename OutIter>
size_type query(Predicates const & predicates, OutIter out_it)
Modifier(s)

const

Parameter(s)

Тип

Имя

Описание

<Predicatesconst&>

<predicates>

Предикат.

<OutIter>

<out_it>

Выходной итератор, например, генерируемый std::back_inserter().

Returns

Количество найденных ценностей.

Example

// return elements intersecting box
tree.query(bgi::intersects(box), std::back_inserter(result));
// return elements intersecting poly but not within box
tree.query(bgi::intersects(poly) && !bgi::within(box), std::back_inserter(result));
// return elements overlapping box and meeting my_fun unary predicate
tree.query(bgi::overlaps(box) && bgi::satisfies(my_fun), std::back_inserter(result));
// return 5 elements nearest to pt and elements are intersecting box
tree.query(bgi::nearest(pt, 5) && bgi::intersects(box), std::back_inserter(result));
// For each found value do_something (it is a type of function object)
tree.query(bgi::intersects(box),
           boost::make_function_output_iterator(do_something()));
// For each value stored in the rtree do_something
// always_true is a type of function object always returning true
tree.query(bgi::satisfies(always_true()),
           boost::make_function_output_iterator(do_something()));
// C++11 (lambda expression)
tree.query(bgi::intersects(box),
           boost::make_function_output_iterator([](value_type const& val){
               // do something
           }));
// C++14 (generic lambda expression)
tree.query(bgi::intersects(box),
           boost::make_function_output_iterator([](auto const& val){
               // do something
           }));

Throws

Если конструктор ценных копий или задание на копирование бросает. Если предикат копирует бросок.

[Warning]Warning

Только один<nearest()>знак может быть передан запросу. Прохождение большего количества из них приводит к ошибке времени компиляции.


PrevUpHomeNext

Статья query(Predicates const &, OutIter) раздела Chapter 1. Geometry boost::geometry::index::rtree может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: boost::geometry::index::rtree ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:16:02/0.004155158996582/0