C++ Boost R-tree:无法删除值?

C++ Boost R-tree:无法删除值?,c++,r-tree,boost-geometry,C++,R Tree,Boost Geometry,首先,我的代码: // Reads the index bi::managed_mapped_file file(bi::open_or_create, indexFile.c_str(), bf::file_size(indexFile.c_str())); allocator_t alloc(file.get_segment_manager()); rtree_t * rtree_ptr = file.find_or_construct<rtree_t>("rtree")(par

首先,我的代码:

// Reads the index
bi::managed_mapped_file file(bi::open_or_create, indexFile.c_str(), bf::file_size(indexFile.c_str()));
allocator_t alloc(file.get_segment_manager());
rtree_t * rtree_ptr = file.find_or_construct<rtree_t>("rtree")(params_t(), indexable_t(), equal_to_t(), alloc);
std::cout << "The index contains " << rtree_ptr->size() <<  " entries." << std::endl;

std::ifstream inf(transFile.c_str());
std::string line;

while(getline(inf,line))
{
    transition t = transition(line);
    point A;
    A.set<0>(t.getQ1mz()-1);            
    A.set<1>(t.getQ3mz()-1);            
    A.set<2>(0.3);          
    A.set<3>(0.2);

    value_t v = std::make_pair(A,t);        
    rtree_ptr->insert(v);       

    rtree_ptr->remove(v);
}

std::cout << "Finished. The index now contains " << rtree_ptr->size() <<  " entries." << std::endl;
很明显,树的大小增加了十个,因为十个插入像一个符咒;但是,如果删除工作正常,那么最终树的大小应该与以前相同,事实并非如此


我遵循了所描述的从R-树中删除值的语法,并且所有编译都正确,但出于某种奇怪的原因,它只是没有删除值。我的猜测可能是,由于它按值删除,它可能找不到要删除的值,但怎么可能呢,因为该值是一行前刚刚插入的值?

可能等于t不起作用?rtree的类型是什么?即您使用了什么平衡算法?什么是相等函数?rtree中存储的对象的类型是什么,一些4d点?它真的是四维的吗?您使用的是哪个Boost版本?如果使用标准分配器,是否也会发生同样的情况?
The index contains 339569462 entries.
Finished. The index now contains 339569472 entries.