我有这个:
并像这样将我的对象添加到其中:
假设我有100个对象,指针分别为*obj1、*obj2......*obj100。
现在我想从向量中删除obj37。我希望我可以像推送一样做到这一点:
vector<Object*> myVec;
并像这样将我的对象添加到其中:
Object *obj1 = new Object;
myVec.push_back(obj1);
假设我有100个对象,指针分别为*obj1、*obj2......*obj100。
现在我想从向量中删除obj37。我希望我可以像推送一样做到这一点:
myVec.remove_back(obj37);
如果有一个类似于“remove_back”的函数就好了,但我想没有这样的函数。
希望你明白我的意思并帮我解决问题。
顺便提一下,看看这个问题,在被接受的答案中,有一个按值工作的删除算法:
vec.erase(std::remove(vec.begin(), vec.end(), 8), vec.end());
我试着使用指针,即使我自己也不相信它会起作用,但令人惊讶的是,它并没有起作用:
myVec.erase(std::remove(myVec.begin(), myVec.end(), *obj37), vec.end());
是的,我知道我刚才说了一些废话,但那是为了让你明白。某个地方应该有一个像这样简单的解决方案,我只是想要那个。
std::remove_if
提供自己的比较器。 - chrisstd::remove_if
。谢谢。 - allyozturk