c++ - 从向量中删除对象指针
问题描述
我知道这篇文章可能是重复的,但我能找到的答案并不清楚。
std::vector<EWindow> windows;
void closeWindow(EWindow* window);
这些是我的函数,我想EWindow*
从 vector中删除指针windows
。
C++ 从向量中删除对象解释了如何删除对象而不是指针。
解决方案
但是您需要使用指针向量来删除指针。std::vector<EWindow*> windows;
删除指针的代码来自向量:
将您的向量声明为指针向量:
std::vector<EWindow*> windows;
//...
void closeWindow(EWindow* window)
{
//...
auto RemoveIt = std::find(windows.begin(),windows.end(), window);
if ( RemoveIt != windows.end() )
{
windows.erase(RemoveIt);
}
//...
}
在向量中查找元素,然后从向量中删除它(如果存在)
推荐阅读
- python - setup.py如何打包一个纯数据文件项目?
- function - Golang 在编写函数闭包时会自动将变量分配为参数吗?
- java - 手动构建的 eclipse 插件似乎没有在目标中更新
- git - 无法在 pythonanywhere 中进行 git clone -- 权限被拒绝(公钥)
- windows - 对带有非默认 SSL 服务器名称指示 (sni) 的客户端使用 winhttp
- c# - 具有外键引用的 Entity Framework Core 更新列
- django - 从模板输入到Django中的视图
- irs - IRS A2A - 在生产中使用一次 AATS 进行逻辑测试
- node.js - 在 axios 标头上设置默认标头是否会反映在其他模块中所有导入的 axios 实例中?
- java - Unity3d 中集成的 android MIDI 驱动程序没有声音