从 std::vector 中连续擦除的安全方法?

2024-01-27

我认为下面的代码可以工作,但是当目标小部件位于向量末尾时它会崩溃。

for(std::vector<AguiWidget*>::iterator it = children.begin();
        it != children.end(); ++it)
    {
        if((*it) == widget)
            it = children.erase(it);
    }

我希望它遍历并删除它找到的小部件的任何实例。我知道这个方法是 N^2 但由于这是事件驱动的所以没问题。我只是不知道为什么这会失败。当它出现时,'it' == widget。

Thanks


您可以使用擦除删除惯用语来擦除all等于的元素widget.

children.erase(remove(children.begin(), children.end(), widget), children.end());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 std::vector 中连续擦除的安全方法? 的相关文章

随机推荐

  • 如何发布包含 2 张图片的墙贴

    我正在创建一个小应用程序 人们可以在其中比较他和他朋友的不同照片 该应用程序非常简单 我使用起来没有任何问题 当用户尝试在他们的墙上发布内容时 问题就出现了 我希望帖子是这样的 我知道通过做类似的事情 parameters array me
  • 更简单的方法让课程与操作员一起工作?

    在这里 我有一个名为Value可以简单地获取和设置float class Value public Value float f f f float get return f void set float f this gt f f priv
  • 如何防止IDM抓取MP3文件?

    我使用以下代码在我的网站中添加音乐播放器 div div
  • 我需要一个溢出来从左侧截断,并带有省略号

    简而言之 我有一个字段 其中最右边的数字最重要 当然 该字段来自我们附属公司的系统 基于其主键 因此最左边的数字每个时期仅更改一次 大家都知道 CSS 提供了 text overflow ellipsis 的右截断 我们如何 无需向服务器添
  • 如何使用jQuery查找父元素中某个子元素的位置号

    我有一个 div 包含其他几个包含图像的 div 它看起来像这样 div div class imgHldr img src foo bar png div div class imgHldr img src foo bar png div
  • 为手势控制的网站生成事件

    我很高兴有机会在基于手势的网站上工作 对此我有一些启发 link http when it rains com gesture php 我访问了很多网站并用谷歌搜索 维基百科和 gitHub 也没有多大帮助 由于这些技术还处于起步阶段 因此
  • “import * as”是否比特定命名导入效率低? [复制]

    这个问题在这里已经有答案了 假设我有一个模块foo像这样 export const f x gt x 1 export const g x gt x 2 我可以像这样使用这个模块 import f g from foo console lo
  • “Android Library Update” Eclipse 任务在启动时随机卡住了我的 Eclipse

    它卡在 项目 的清理输出文件夹中 它并不总是同一个项目 那么有什么解决方法吗 我尝试了清理项目的方法 但是库更新发生得太快 我什至为 Clean 分配了一个自定义键盘快捷键 但在它开始之前我仍然无法将其放入其中 我真的不想删除 metada
  • 面临 django 中的用户配置文件 url 方案(例如 example.com/username)的问题

    在 django 应用程序中 我需要创建具有以下结构的 twitter 用户个人资料 url 例如 example com
  • 如何以编程方式从ios7设备获取未更改的设备ID

    我需要获取唯一的设备 ID 来填充数据库中的唯一用户 ID 我使用以下代码来实现这一点 NSString strApplicationUUID UIDevice currentDevice identifierForVendor UUIDS
  • Linux中的系统调用是如何实现的?

    当我在用户模式下调用系统调用时 操作系统如何处理该调用 它是否调用一些可执行二进制文件或一些标准库 如果是的话 需要什么样的东西才能完成呼叫 看一下this http manugarg googlepages com systemcalli
  • 推送到生产服务器时 ASP.NET MVC 错误 500

    我正在 C 项目中开发 ASP NET MVC 4 该项目在我的本地开发服务器上运行良好 但是 当我将其推送到生产服务器时 特定页面会出现 500 内部服务器错误 但是 我收到的错误并不比 处理您的请求时发生错误 更有帮助 如何强制 ASP
  • 如何在 PHP 中使用正则表达式解析 Apache 日志

    我正在尝试在 PHP 中分割这个字符串 11 11 11 11 25 Jan 2000 14 00 01 0100 GET 1986 js HTTP 1 1 200 932 http domain com index html Mozill
  • Xml - 使用Python按标签查找元素[重复]

    这个问题在这里已经有答案了 我正在尝试从一堆 xml 文件中提取一些数据 现在的问题是所有文件的结构并不完全相同 因此 仅迭代子文件并提取值是很困难的 有没有getElementByTag python 处理此类 xml 文档的方法 我发现
  • MATLAB 中的统计异常值检测

    假设我们有这个矩阵 main 10000 5 3 1 5 5677 0 134 1 1 456 3 该方法是计量经济学和统计问题中使用最广泛的方法 X是我们正在寻找异常值的数据 X mean X gt n std X 因此 如果这个不等式成
  • 仅在启动时无法找到运行时版本?

    我有一个非常简单的控制台应用程序 只是一个Console Write 来测试一些启动功能 我将其放在 Window 7 的启动文件夹中 但当它运行时 我收到 无法找到运行此应用程序的运行时版本 奇怪的是 如果我进入启动文件夹并实际运行该程序
  • 如何在keras批量更新期间缩放梯度?

    我正在使用标准 keras 模型 并且正在批量训练 使用train on batch功能 现在 我想获取批次中每个元素的梯度并对其进行缩放 将每个样本梯度与我拥有的样本特定值相乘 并且在缩放每个梯度后 可以将其求和并用于更新现有权重 无论如
  • HTML 输入 type="password" 的 Windows 批处理等效项是什么?

    我需要在 Windows 脚本中从用户那里获取身份验证凭据 但采用经典的 第一个 Google 结果 方法 SET P USR Username SET P PWD Password 不太令人满意 所以我想知道是否有一个 等价物 HTML
  • 帮我解决我的 JavaScript 测验 [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我已经参加这个测验很多年了 只是无法
  • 从 std::vector 中连续擦除的安全方法?

    我认为下面的代码可以工作 但是当目标小部件位于向量末尾时它会崩溃 for std vector