如何在不释放元素的情况下从unordered_set中删除元素



正如标题所说,我想在不调用析构函数的情况下从unordered_set中删除元素。在我的例子中,我将一组MyObject指针存储在一个无序集合中,但是我也希望在不释放/清理它们的情况下将它们从无序集合中删除。然而,当调用erase时,元素被自动释放。有没有办法实现这一点,而不必诉诸共享/智能指针?

编辑:原来memcheck工具没有正确检测到内存释放/使用导致错误的结论和这个问题。指针在对unordered_set对象调用erase时不会被释放!

您可以在不破坏集合元素的情况下extract包含该元素的节点。

我正在存储MyObject指针集合

在这种情况下,在将指针从集合中擦除之前,是否考虑只是复制该指针?

最新更新