当前位置: 首页 > news >正文

c++迭代器失效问题

更多技术博客 http://vilins.top/

Segentation fault(core dumped)

在Linux上写程序的时候,我们在调试的时候会出现如标题一样的提示,这说明你的程序访问了非法的内存,用了非法的指针(可能说的不太准确,但一定是你访问了不该访问的内存),其中一种常见的错误就是迭代器的失效问题: 举个栗子
int arr[6] = {1, 2, 3, 2, 3, 4}; vector<int> v1(arr, arr+6); for(auto it = v1.begin(); it != v1.end(); it++) { if(*it == 2) { v1.erase(it); } }

乍一看这是理所当然的操作, 把vector中的2删掉,但不然,当第一个2被删的时候,迭代器已经指向了一个空内存,当执行it++的时候显然不是访问我们想要访问的内存,故出现了内存访问错误。

那么问题来了,正确的操作是怎么样的呢?
为了让大家理解,我们应该要知道vector的erase函数的返回值是所删除元素的下一个空间;
所以正确的代码为:

int arr[6] = {1, 2, 3, 2, 3, 4}; vector<int> v1(arr, arr+6); auto it = v1.begin(); while(it != v1.end()) { if(*it == 2) { it = v1.erase(it); } else { it++; } }

Enjoy coding1

更多技术博客 http://vilins.top/


  1. Written by Vilin. Thanks for your reading. ↩︎

http://www.jsqmd.com/news/937563/

相关文章:

  • Capacitated Facility Location Problem
  • 3步快速上手:Cursor Pro永久免费破解方案终极指南
  • 51单片机+DS18B20温度报警器保姆级教程:从Proteus仿真到普中开发板烧录全流程
  • 别再折腾了!保姆级教程:在VMware Ubuntu虚拟机里调用Windows主机摄像头(含Cheese/FFmpeg测试)
  • 2026年5月口碑好的过滤器源头厂家怎么选择,过滤器/精密调压阀/气源过滤器/大流量气源处理器,过滤器直销厂家推荐 - 品牌推荐师
  • 基于BERT与CNN的智能交互装置:情绪分析与手势识别的软硬件实现
  • 告别YUV图片转换烦恼:在Ubuntu 22.04上从源码编译libjpeg-turbo 2.1.5的完整指南
  • WeFlow:重新定义前端开发工作流的技术架构与实践指南
  • w3x2lni:魔兽地图开发者的格式转换终极解决方案
  • ATmega328P烧录Bootloader总报错?别急着换芯片,先检查这个签名!
  • 7-Zip-zstd:当压缩工具遇见现代算法,你的文件处理体验将彻底改变
  • 私人AI Agent搭建:让人人都拥有自己的数字员工
  • 老硬盘迁移到新电脑无限重启?可能是Intel VMD在捣鬼,附PE下驱动注入完整流程
  • 目标检测框回归的“进化史”:从IOU到CIOU,我们到底在优化什么?(附PyTorch实现对比)
  • 别再傻傻重做U盘了!Win10安装报错install.wim,用一条DISM命令10分钟搞定
  • Tessy新手避坑指南:从零搭建单元测试工程,手把手搞定.c文件与.h文件链接
  • WuWa-Mod:鸣潮游戏模组全面解析与实战指南
  • Smithbox终极指南:从零开始掌握魂系游戏修改工具
  • AI工程师全景解析:岗位分类、核心职责与薪资体系
  • 保姆级教程:在Ubuntu 20.04上管理多版本CUDA(11.0/11.4/12.1),用软链接自由切换
  • 如何在5分钟内彻底改变你的macOS鼠标光标样式
  • 别再傻傻重做U盘了!Windows10安装报错0x8007000D,一招拆分install.wim搞定
  • Arduino步进电机DIY:从原理到实践,打造智能口红选择器
  • AI应用开发工程师全景详解:从技术内核、岗位实战到职业跃迁的完整指南
  • 从一次Python3软链接报错,聊聊Linux系统PATH与命令寻址的那些“坑”
  • 鸣潮自动化工具完整指南:如何快速配置游戏自动战斗与声骸刷取
  • 工业防爆监控技术解析:湖北地区防爆监控应用与选型指南
  • 3分钟掌握苹果平方字体:免费PingFangSC完整使用教程
  • 鸣潮自动化终极指南:如何用ok-ww实现智能挂机解放游戏时间
  • 基于MOSFET的LED流水灯制作:无稳态多谐振荡器电路详解