向量迭代器不可解引用

2023-11-21

我有一个名为 Shape 的抽象基类,Circle 和 Rectangle 都是从中派生的,但是当我在 VS 2005 中执行以下代码时,我收到错误“调试断言失败”。同时我没有在任何类中重载 == 运算符

表达式:向量迭代器不可解引用,这是什么原因。

  vector<Shape*> s1;
  s1.push_back(new Circle(point(1,2),3));
  s1.push_back(new Circle(point(4,3),5));
  s1.push_back(new Rectangle(point(1,1),4,5));

  vector<Shape*> s2(s1);
  reverse(s1.begin(),s1.end());

  (*find(s1.begin(),s1.end(),new Circle(point(1,2),3)))->move(point(10,20));

Simple :

  • 查找失败,因为在比较 Shape * 的向量中找不到新创建的 Circle
  • 失败的查找返回结束迭代器,该迭代器不可延迟,如调试断言捕获的那样

为了让它像你想要的那样工作,你确实需要比较 Shape,而不是 Shape*

正如其他答案中指出的,升压::ptr_向量是实现这一目标的简单方法。

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

向量迭代器不可解引用 的相关文章

随机推荐

  • Android 实时开发者通知一次性购买成功了一半

    当我使用 慢速测试卡 几分钟后批准 时 Android 的实时开发人员通知会起作用 我通过 pub sub 在我的服务器上收到两个通知 一种是当购买已完成并且其中包含令牌和订单时的消费状态 0 时 第二个通知 在它被消费后 带有 token
  • 导入错误:没有名为 lxml.etree 的模块

    我正在尝试在我的项目中导入预邮件程序 但它在 etree 导入中始终失败 我安装了 lxml 的 2 7 二进制文件 lxml 模块导入正常 如果我记录 lxml 模块 它会显示库文件夹的正确路径 但我无法从中导入 etree lxml 文
  • Java从文本文件中读取值

    我是 Java 新手 我有一个包含以下内容的文本文件 trace structure list a structure c 0 748701 0 243802 0 227221 0 752231 0 261118 0 263976 1 19
  • 在 Python 中处理多个文件时如何避免嵌套“with”语句

    当使用推荐的样式在 Python 中处理多个文件时 代码可能会变得丑陋 with open foo txt as foo with open bar txt w as bar with open baz txt w as baz Read
  • PHP 包含文件扩展名吗?

    对于 PHP 中必需 包含的文件 使用更好吗 inc扩展 vs inc php vs php扩展 有时人们使用 inc扩展 然后进行一些服务器配置以保留 inc通过网络浏览器访问文件 这might如果由知识渊博的系统管理员绝对正确地完成 那
  • 修剪所有数据库字段

    您知道 sql server 中是否有一种快速方法 通过 transact sql 可以修剪所有数据库字符串字段 没有光标 复制并粘贴输出 也适用于没有 varchar max 的 SQL 2000 如果需要 可以轻松扩展以将 GO 行添加
  • 如何显示当前登录的用户 Firebase

    mAuth FirebaseAuth getInstance mFirebaseDatabase FirebaseDatabase getInstance myRef mFirebaseDatabase getReference child
  • 分组函数(tapply、by、aggregate)和 *apply 系列

    每当我想在 R 中做一些 map py 的事情时 我通常会尝试使用apply家庭 然而 我一直不太明白它们之间的区别 如何 sapply lapply等 将函数应用于输入 分组输入 输出会是什么样子 甚至输入可能是什么 所以我经常会仔细检查
  • 如何读取 JMS 消息而不使用它们 - 使用 ActiveMQ

    我想知道是否有任何方法可以读取 jms 和 activemq 消息而不消耗它 我知道消息可以从队列中消费 但我仍然想问这个问题 您可以通过 JMS QueueBrowser 浏览队列上的消息 或者在 ActiveMQ 中您可以通过 JMX
  • 如果数据源不包含任何项目,如何在 ASP.NET C# 中隐藏转发器?

    我有一个 ASP NET 页面 它使用嵌套在另一个转发器中的转发器来生成数据列表 其作用如下
  • Pthread:为什么人们费心使用 pthread_exit?

    据我了解 当您需要终止具有返回值的线程时 pthread exit 完全等于 return 当人们可以使用一致的方式 即返回 来完成工作时 为什么 Pthread 定义这样一个重复的接口 我想到的两个原因 pthread exit 允许您从
  • 使用 Xamarin.Forms 和 Serilog 将日志写入文件

    您好 我在使用 Xamarin Forms NET Core 共享项目 和 Serilog 将日志写入 Android 设备上的文件时遇到问题 到目前为止 我已经在共享项目中安装了 Serilog 将 Serilog Serilog Sin
  • jstree select_limit 不起作用。我想设置选择限制以仅选择 3 个节点

    我的 jstree 函数在这里 我已经设定 select limit 3 但不起作用 当我运行时 我可以选择超过 3 个节点 但我需要选择不超过 3 个节点 var j1 jQuery noConflict j1 utree activit
  • sqlite3 带引号导入

    我正在尝试导入字段中包含引号的数据集合 它们目前是制表符分隔的 据我所知 根据文档 http www sqlite org cvstrac wiki p ImportingFiles sqlite shell 应该按字面解释引号 我认为这意
  • 我如何从 WordPress 中的每个类别中仅获取 1 个帖子

    我有一个名为新闻的类别 其中有许多子类别 我想要做的是从每个子类别 包括类别标题 帖子标题 附件图片 中仅获取 1 个帖子 最新 朋友们有什么建议吗
  • 如何使用 TIdHTTP 停止(取消)下载

    我正在使用TIdHTTP Get程序在一个线程中下载文件 我的问题是如何停止 取消 文件的下载 我会尝试通过抛出静默异常来取消它Abort方法中的TIdHTTP OnWork事件 此事件会在读 写操作时触发 因此在下载过程中也会触发该事件
  • 无法使用 has_secure_password、password_digest 错误

    晚上好 我有个问题 我在用has secure password导致我有一个错误undefined methodpassword digest for 但我没有这个方法 请帮忙 不知道该怎么办 我阅读了如何解决这个问题 但它对我没有帮助 这
  • MySQL 在日期时间列上选择 1 小时前或更新的记录

    我可以使用什么 where 子句来选择一小时前或更新的记录DATETIME时间戳 像这样的东西吗 我假设一个DATETIME timestamp是一个 DATETIME 字段 SELECT FROM table WHERE datetime
  • 如何将配置文件传递给scala jar文件

    我正在使用类型安全配置我的代码中包含库 然后生成一个 jar 文件 当我将 reference conf 文件嵌入到 jar 中时 该应用程序工作正常 但是是否可以将配置文件作为参数提供给 jar 例如 java DmyconfigFile
  • 向量迭代器不可解引用

    我有一个名为 Shape 的抽象基类 Circle 和 Rectangle 都是从中派生的 但是当我在 VS 2005 中执行以下代码时 我收到错误 调试断言失败 同时我没有在任何类中重载 运算符 表达式 向量迭代器不可解引用 这是什么原因