迭代器无法正确访问问题

2023-12-05

我正在尝试使用迭代器访问向量的元素。但我得到奇怪的输出。

std::vector<int> ivec{ 7, 6 , 8, 9} ; 

std::vector<int>::iterator beg = ivec.begin(); 
std::vector<int>::iterator last = ivec.end(); 

std::cout << *beg << *last << std::endl; 

但是,在上述情况下,程序显示错误:debug assertion failed. Vector iterator not dereferencable.这个错误特别适用于*last。如果我只是打印*beg那看来错了。但无法取消引用最后一个。

我遇到的迭代器的另一个问题是在增量过程中。

std::vector<int>::iterator beg = ivec.begin(); 

cout << *(beg++) ;  // in this case it prints me value of 7
cout << *(++beg) ;  // in this case it print me the right value of second place i.e. is 6
cout << *(beg+=1) ; // in this case we also print the second value i.e. 6 

end迭代器不是可以取消引用的迭代器。他们指出past将最后一个元素放入容器中。这是有充分理由的。但无论长短,end迭代器实际上并不指向任何元素。如果您想要最后一个元素,则需要递减结束迭代器。

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

迭代器无法正确访问问题 的相关文章

随机推荐

  • While 循环和列表

    在本课中 您将学习如何使用while 环形 该代码是在视频的实时会话中调试的 一个简单的例子可能如下所示 a fizz baz buzz while a print a pop 1
  • Python 的 map() 函数入门

    以下是有关 lambda 的资源和附加文档 如何使用 Python Lambda 函数 真正的 Python 文章 如何使用 Python Lambda 函数 真正的 Python 视频课程 Lambda 表达式 Python 文档
  • 选择优质包第 2 部分

    资源和链接 如何为 GitHub 项目编写出色的自述文件 dbader org 开源许可证解释 choosealicense com
  • Python 的 map() 函数:转换 Iterables(摘要)

    在本课程中 您学习了如何map 工作原理以及如何使用它来处理可迭代对象 你还了解了一些Pythonic您可以用来替换的工具map 在你的代码中 您现在知道如何 使用Pythonmap 使用map 到过程和转换不使用显式循环的迭代 结合map
  • Python 3.9 中很酷的新功能(概述)

    Python 3 9 来了 在过去的一年里 来自世界各地的志愿者一直致力于 Python 的改进 虽然 Beta 版本已经发布了一段时间 但 Python 3 9 的第一个正式版本已于2020 年 10 月 5 日 Python 的每个版本
  • 使用需求文件

    A 需求文件是项目所有依赖项的列表 这包括依赖项所需的依赖项 它还包含每个依赖项的特定版本 用双等号指定 pip freeze将列出当前项目的依赖关系stdout 此 shell 命令会将其导出为名为的文件requirements txt
  • 多处理模块

    在本课程中 您将了解为什么要采用这种方法 因为你的代码写在函数式编程风格 你可以相当容易地并行化它 有一个平行的map构建您可以使用的 这样 您就可以并行运行处理步骤 您将导入multiprocessing模块 因为它具有并行运行此操作所需
  • JSF:从 Jar 中提供资源

    我正在创建几个装有 Facelets 模板的罐子 供整个组织使用 在 JSF 1 2 中 此功能并不是开箱即用的 堆 Jboss EAP 5 1 Seam 2 2 富脸3 3 3 在我看来 我主要需要两个资源 查找 Faclets 资源的资
  • 在特定的开始、结束日期和时间限制内运行 Quartz Scheduler 作业

    我正在使用 Quartz Scheduler 来执行重复性任务 但我遇到了麻烦 在我的服务器端 我的用户想要指定一些日期范围 例如From 2013 09 27 with in 09 00 AM 12 00 PM to 2013 09 30
  • Pinterest 的官方 OAuth2 流程似乎返回无效的访问令牌

    我按照 Pinterest 的说明进行操作验证用户身份完成步骤 2 后 我手里拿着一个访问令牌 但是 当我使用此访问令牌进行 API 调用时 我收到以下响应 status failure code 3 host coreapp devpla
  • 有没有办法让 JQuery ajax 成功函数访问它所包含的对象?

    我有这样的 JavaScript function Cat this meow function meow ajax do AJAX call success this meow var TopCat new Cat 这不起作用 因为 th
  • 如何在正则表达式子例程中访问捕获组?

    我有一个模式想在几个地方使用 但我想访问该模式的内部部分 有没有办法做到这一点 In this 简化的例子 DEFINE lt isa gt s
  • 全局内存写入在 CUDA 中是否被视为原子?

    全局内存写入在 CUDA 中是否被视为原子操作 考虑以下 CUDA 内核代码 int idx blockIdx x blockDim x threadIdx x int gidx idx 1000 globalStorage gidx so
  • 通过参考返回

    PHP 文档中写道 不要使用按引用返回来提高性能 引擎 会自动对其进行优化 我希望返回对数组的引用 这是我的类的属性 PHP 如何优化这个 因为数组不是对象 如果数组有10亿个条目 如果我不通过引用传递它 我不会得到两个在内存中存储有10亿
  • MySQL SUM 函数在多个连接中

    嗨 这是我的情况 我有那些桌子 Customer id name Charges id amount customer id Taxes id amount charge id 所以我想计算费用和税费的总和 然后按客户 ID 分组 这是我的
  • EL 空运算符在 JSF 中如何工作?

    在 JSF 中 可以使用 EL 空运算符来呈现或不呈现组件 rendered not empty myBean myList 据我了解 该运算符既可以用作空检查 也可以检查列表是否为空 我想对我自己的自定义类的某些对象进行空检查 我需要实现
  • 访问共享内存进行读取时锁定

    如果我以只读方式访问共享内存 请检查某个条件if 块 我还应该锁定互斥锁吗 例如 mutex lock if var shared memory mutex unlock 这里是否需要锁定并且是良好的做法 如果您正在读取的变量可以同时写入
  • 如何使用 Matlab 按字母顺序对属性值对进行排序

    我想向现有文件添加属性值对 同时 所有属性应按字母顺序排序 例如 Info property 1 value 1 system property 2 value 2 我如何添加其他属性 以便所有属性都按字母顺序排序 我能够使用以下命令将属性
  • 使用 HTML5 音频更改 在 Chrome 中有效,但在 Safari 中无效

    我正在尝试制作一个可在每个主要浏览器中使用的 HTML5 音频播放列表 Chrome Safari Firefox IE9 但是 我不知道如何以跨浏览器兼容的方式更改源 UPDATED例如 更改
  • 迭代器无法正确访问问题

    我正在尝试使用迭代器访问向量的元素 但我得到奇怪的输出 std vector