当前位置: 首页 > 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.gsyq.cn/news/1448916.html

相关文章:

  • ATmega328P烧录Bootloader总报错?别急着换芯片,先检查这个签名!
  • 私人AI Agent搭建:让人人都拥有自己的数字员工
  • 老硬盘迁移到新电脑无限重启?可能是Intel VMD在捣鬼,附PE下驱动注入完整流程
  • Tessy新手避坑指南:从零搭建单元测试工程,手把手搞定.c文件与.h文件链接
  • 别再傻傻重做U盘了!Windows10安装报错0x8007000D,一招拆分install.wim搞定
  • 工业防爆监控技术解析:湖北地区防爆监控应用与选型指南
  • 如何永久保存微信聊天记录?WeChatMsg完整指南让你轻松掌控个人数据
  • 三步打造你的智能笔记系统:Obsidian模板完全指南
  • 从ENVI到ERDAS:手把手教你搞定Landsat ETM+植被指数反演(附FLAASH大气校正避坑指南)
  • 如何让Navicat Premium在Mac上无限试用:终极重置方案详解
  • AI论文高效阅读实战:8大工具构建从发现到复现的研究流水线
  • 告别下载失败!STM32CubeIDE + ST-LINK V2/V3 下载程序完整流程与问题排查
  • 基于Micro:bit与状态机设计实现交互式井字棋游戏
  • 树莓派改造烤面包机为回流焊炉:低成本实现SMT焊接
  • ABP VNext默认用EFCore不爽?手把手教你集成SqlSugar和FreeSql(.NET 8实战)
  • 国内门窗十大品牌实测盘点 硬核实力对比解析 - 奔跑123
  • 7-Zip-zstd终极指南:6大现代压缩算法一键解锁
  • 嵌入式开发板远程管理:如何用MobaXterm的SSH功能替代串口线进行调试和文件传输
  • Windows平台高性能媒体播放器深度解析:mpv.net技术架构与实战配置指南
  • 高效移除Windows Defender解决方案:如何彻底禁用系统安全组件并提升性能
  • 别再只看像素了!聊聊ADAS前视摄像头选型时,分辨率与帧率背后的那些‘隐形’成本
  • 山东金属铝蜂窝隔断板工厂选型:从场景痛点看硬实力 - 奔跑123
  • 基于Arduino Uno与Solo UNO的BLDC电机扭矩闭环控制实践
  • KMS智能激活工具:5分钟解决Windows和Office激活难题
  • 计算机考研408终极复习指南:3个月高效备考完整方案
  • Mac Mouse Fix终极指南:3步配置让你的普通鼠标在macOS上媲美苹果触控板
  • 基于ESP8266与热致变色液晶的智能时钟:硬件设计与温控算法详解
  • 2026年广州代账行业新格局,企业主如何选到靠谱财税伙伴? - 小征每日分享
  • 西安机床配套钢板防护罩选购指南:安可士智能科技产品线与对比参考 - 品牌推荐大师
  • 多模态大模型视频理解中的幻觉与顺从性问题:GasVideo-1000基准测试深度解析