Boost logo

Geometry :

Subject: Re: [geometry] rtree query and std::back_inserter
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2015-06-17 09:37:42

Hi Hussein,

Hussein Almashouq wrote:
> Hi to all I'm using the rtree* to load 1M > data points . Then I
> use the rtree query to different intersection query like
> found +=rtree.query(bgi::intersects(qbox), std::back_inserter(result));
> currently I'm interested in getting the count of results rather than
> inserting into the result vector
> I have to two question
> 1. is possible to skip std::back_inserter step and do a query that
> finds the count only.
> 2. How can improve the performance of the std::back_inserter methods
> as my results are N^2 where N > 1M usually . ( check this post

To count the elements meeting the predicate or do something else for
each element without the creation of the result container you can use:

1. |boost::function_output_iterator|

|||// using C++11 lambda expression, in C++98 you can pass a function object||
size_t counter= 0;||
                 [&](Value const&) {

2. query iterator

|size_t count = std::distance(tree.qbegin(intersects(box)), tree.qend())|;


Geometry list run by mateusz at