C++:vector.erase(this)

Ste*_*veL 1 c++ vector

我有一个std::vector包含所有对象的东西,并在每个帧中传递给它们,这样每个对象都可以访问其他对象.我的问题是一个对象如何从向量中删除自己?

这不起作用:

vector.erase(this);
Run Code Online (Sandbox Code Playgroud)

还有其他解决方案吗?

dir*_*tly 8

erase需要一个迭代器.this是成员函数/类定义中可用的指针.此外,erase需要在一个实例上调用vector- 你不能使用vector.erase.

对象无法删除自身.您将需要传递一个迭代器.您可以使用它std::find来查找对象是否存在于向量中,然后将其传递.