防止std :: set删除内存

Inu*_*art -1 c++ memory-management set

有没有办法阻止std::set< Object*>.erase(it)函数删除内存?我只希望Object*从集合中删除,而不释放内存..

具体来说,我有一个对象将自己从集合中移除并将自己置于另一个集合中.它崩溃了.

set1.insert(this);    
set1.erase(set1.find(this));
set2.insert(this);
Run Code Online (Sandbox Code Playgroud)

有人能够重现这个吗?谢谢!

NPE*_*NPE 10

由于您将原始指针存储在集合中,因此您无需执行任何特殊操作:调用时不会释放内存erase.

至于可能导致崩溃的原因,请发布一些相关代码以及它崩溃的具体细节.