我知道这篇文章可能会重复,但我能找到的答案并不清楚。
std::vector<EWindow> windows;
void closeWindow(EWindow* window);
这些是我的函数,我想从向量EWindow*
中删除指针windows
。
C++ Remove object from vector解释了如何删除对象而不是指针。
答案 0 :(得分:0)
但是你需要使用指针向量来移除指针。 std::vector<EWindow*> windows;
删除指针的代码来自vector:
将您的向量声明为指针向量:
std::vector<EWindow*> windows;
//...
void closeWindow(EWindow* window)
{
//...
auto RemoveIt = std::find(windows.begin(),windows.end(), window);
if ( RemoveIt != windows.end() )
{
windows.erase(RemoveIt);
}
//...
}
在向量中查找元素,然后将其从向量中删除(如果存在)