好的,我正在使用 C++ STL 容器(当前为 vector<customType*>
)。
现在我需要从容器中移除元素,
但是使用删除会解构对象,这很糟糕,因为我要把它从一个对象上取下来,然后把它放到一个变量上进行一些处理,然后再放到另一个变量上。
目前我的代码非常糟糕,我只是在读取它之后将 NULL 放在它的位置,放入我的变量中,然后放置一个 if (Q[ii]NULL) continue。 但这并不是那么好。
最佳答案
如果您有一个指针容器(这听起来像是因为您将 NULL
分配给“已删除”元素),那么从容器中删除一个元素不会 删除指向的对象。你有责任自己做。
如果您有一个对象容器(好吧,非指针对象),那么您需要在删除之前将元素从容器中复制出来。
关于c++ - 从 STL 容器中移除一些东西而不解构它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3947003/