C++ “增强r-树”;“正确”;访问对象的方法

C++ “增强r-树”;“正确”;访问对象的方法,c++,boost,r-tree,C++,Boost,R Tree,TLDR:有没有办法直接在Boost r-tree中更新对象(通过将location类属性设置为const或类似的方式) 更多信息: >我使用C++ Boost的R树来存储空间坐标对象(参考,请参阅我的)。为了便于讨论,让我们假设我的对象是具有空间笛卡尔坐标和某些类属性的城市-ies;比如说人口和规模 目前,我有一个单独的std::map,其键是一些索引,值是City对象。在树中,正如我对上一个问题的回答所建议的,我存储了一些结构,其字段是City索引及其坐标。当我需要更新City类属性时,我所

TLDR:有没有办法直接在Boost r-tree中更新对象(通过将location类属性设置为const或类似的方式)

更多信息:

>我使用C++ Boost的R树来存储空间坐标对象(参考,请参阅我的)。为了便于讨论,让我们假设我的对象是具有空间笛卡尔坐标和某些类属性的
城市
-ies;比如说人口和规模

目前,我有一个单独的
std::map
,其键是一些索引,值是
City
对象。在树中,正如我对上一个问题的回答所建议的,我存储了一些结构,其字段是
City
索引及其坐标。当我需要更新
City
类属性时,我所做的就是在树中搜索城市,并更新
std::map

// The struct stored in the tree
struct CityRef {
        size_t index;
        point location;
};

typedef bgi::rtree< CityRef, bgi::quadratic<16>, bgi::indexable<CityRef>,  index::equal_to<CityRef> > rtree_t;

//A map storing the cities:
std::map<size_t, City *> cityDict;
并将该对象存储在树中:

typedef bgi::rtree< City, bgi::quadratic<16>, index::indexable<City>,  index::equal_to<City> > rtree_t;

看起来不像。其中一位开发人员提出了一些在这封旧电子邮件中处理非常量数据的想法。但那是在2015年,现在公共名称空间中没有非常量查询迭代器。
typedef bgi::rtree< City, bgi::quadratic<16>, index::indexable<City>,  index::equal_to<City> > rtree_t;
it->population = newPopulation;