从Boost MultiIndex中删除

sun*_*mat 4 boost boost-multi-index

我有一个boost多索引结构,它将boost :: shared_ptr保存到类A的实例中.当我使用其中一个索引的"find"函数时,我得到一个迭代器"it",我可以从中获取实际值指针通过A* a = it->get();.如何a从多索引中删除知道erase多索引结构的函数采用迭代器,而不是指针或boost :: shared_ptr?事情是我想要擦除对象的程序,我不再有我的初始迭代器,只有实际的指针.

谢谢

Igo*_* R. 5

没有这样的" erase多指标结构的功能".请注意,它erase索引的成员函数,其签名可能因索引类型而异.

尤其是,命令和散列索引有以下重载erase:

iterator  erase(iterator position);
size_type erase(const key_type& x);
iterator  erase(iterator first,iterator last);
Run Code Online (Sandbox Code Playgroud)

即如果shared_ptr是一把钥匙,你肯定可以将它传递给它erase.当然,您可以find先调用,获取迭代器并将其传递给erase.