我担心执行以下操作会遇到内存泄漏问题:
(示例代码)
class myItem //random container stuff mostly. All primatives.
{
int index;
char* name;
int val1;
int val2;
};
class vecList
{
vector< myitem* > *myVec;
void delete()
{
MyVec->erase(std::remove_if(myVec->begin(), MyVec->end(), IsMarkedToDelete), MyVec->end()); //leak here?
}
};
如果它是指针,删除不会释放内存,对吧?如果我不使用 remove_if,我可以在销毁指针之前调用 delete。在这种情况下我该怎么做?智能指针?我不想用它们重新实现所有内容,也不想添加 boost 库。
谢谢!
最佳答案
您可以在 IsMarkedToDelete
函数返回 true 时删除该项目。
关于c++ - 如果使用 remove_if 并且项目是指向对象的指针,如何删除 vector 中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7968018/