【千律】C++基础:List 链表循环删除元素,及其报错的解决方案

2023-11-03

报错原因:采用erase移除迭代器后,迭代器的值变为-572662307,无法作为迭代器继续运算。

详细:当程序执行到 list_int.erase(itor) 时,满足条件的第一个元素被删除,从而导致 itor 指针被删除,使其不指向任何元素。针对该问题我们首先想到的就是在删除指针之前,对其进行备份,C++ 将这个临时变量直接建立在 erase 实现里。

#include <list>
#include <iostream>
using namespace std;

int main()
{
	// 初始化变量
	int int_erase = 3;
	list<int> list_int = { 1, 4, 3, 5, 9, 3, 6, 8, 3, 2, 6 };

	// 循环链表,删除元素
	list<int>::iterator itor;
	for (itor = list_int.begin(); itor != list_int.end(); itor++)
	{
		if (*itor == int_erase)
		{
			list_int.erase(itor--);
		}
		else
		{
			cout << *itor << ", ";
		}
	}
	cout << endl;

	return 0;
}

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

【千律】C++基础:List 链表循环删除元素,及其报错的解决方案 的相关文章

  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new

随机推荐

  • Arduino和LabVIEW射频灾害紧急报警系统

    该项目将在发生灾难时生成紧急警报 该系统分为两部分 传感器节点和 2 服务器 连接该开关阵列以在处理端生成紧急信号 然后将其发送到传感器节点 图1给出了系统框图 物料清单 接线 原理图 代码 传感器节点端代码 处理端代码 仿真模型 LabV
  • 【实验五】【创建视图并通过视图操作表数据】

    文章目录 视图 原表 一 创建视图 二 插入数据 三 更新数据 四 删除数据 Reference 视图 简介 视图可以看作定义在SQL Server上的虚拟表 视图正如其名字的含义一样 是另一种查看数据的入口 常规视图本身并不存储实际的数据
  • 渗透第一步之DNS信息收集技巧。

    正向查询 首先 最简单最快速的是 使用ping命令输入域名来获取其ip地址 或者 使用nslookup命令来指定域名获取ip地址 Server 192 168 90 83 DNS服务器 Address 192 168 90 83 我们解析到
  • Redis实现用户签到

    目录 一 BitMap用法 1 介绍 2 用法 3 练习 二 签到功能 1 需求 2 代码实现 三 签到统计 1 分析 2 接口实现 一 BitMap用法 1 介绍 我们完全可以通过数据库签到表来实现签到功能 但是假如我们的用户达到千万 每
  • 关于VS2019出现“const char *“ 类型的实参与 “char *“ 类型的形参不兼容错误的解决方法

    解决办法 法1 在VS2019中依次点击项目 gt 属性 gt C C gt 语言 gt 符合模式 将原来的 是 改为 否 即可 法2 这种问题也有可能是因为局部变量没有进行初始化内存 也就是new和delete操作符的运用 include
  • 算法通关村-----链表中环的问题

    环形链表 问题描述 给你一个链表的头节点 head 判断链表中是否有环 如果链表中有某个节点 可以通过连续跟踪 next 指针再次到达 则链表中存在环 为了表示给定链表中的环 评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置 索
  • 关于UTF-8、GBK编码以及编译时charset的指定的一些总结

    首先分清两个概念 C文件中 转换为16进制 汉字的编码 编译后bin文件中汉字的编码 gcc的 finput charset 和 fexec charset 两个选项的存在就是为了实现这两者的转换 1 默认情况下 gcc使用UTF 8 ch
  • OpenGL设计房间 (虚拟现实大作业)

    嘿嘿 课内虚拟现实课程的大作业 做了一个基于opengl房间 参考网上的一些资料 再进行一些扩充 还有一个unity3d的大作业将在之后上传 项目说明 本项目基于OpenGL实现 编辑器VS 使用gl glut h库 实现up键前进 dow
  • 【Spring】spring.main.allow-bean-definition-overriding,允许Bean覆盖

    1 概述 今天在运行我们主版本的主类 想启动任务 然后报错spring main allow bean definition overriding 然后我就查了一下这个是为什么 spring main allow bean definiti
  • 仿真引擎-文献总结笔记一

    文章题目 A Simulation Engine for Stochastic Timed Petri Nets and Application to Emergency Healthcare Systems 文章结构 第二节介绍了随机时间
  • python基础语法

    一个将某进制数转换为十进制数字的方法 该某进制数需要是字符类型表示 Python 3 gt gt gt n input 12 gt gt gt int n 16 18 eval函数用法 gt gt gt a 7 gt gt gt b a g
  • IDEA中使用监听器

    一 被监听对象 二 监听器 三 将时间源和监听器绑定 package listener uilistener import javax swing import java awt event WindowEvent import java
  • python将输入的内容保存到一个新文件

    def file write file name f open file name w print 请输入内容 单独输入 w 保存退出 while True write some input if write some w f write
  • javapdf模板生成pdf_【第9期】springboot: pdf操作

    一 pdf模板制作 1 word编辑模板 2 转成pdf模板 这个比较简单 wps另存为pdf格式就行 3 编辑pdf模板字段 pdf的编辑一般的软件就不行了 需要下载一个专业软件Adobe Acrobat DC 网上有破解版的 也可以关注
  • 做为互联网人 你必须知道的一些IT类网站

    一 IT类网站 行业资讯 1 36氪 36kr com 让一部分人先看到未来 互联网创业服务提供商 2 雷锋网 www leiphone com 读懂智能 未来 科技信息与产品服务平台 3 i黑马 www iheima com 创业创新服务
  • bash 实现多线程执行多个命令

    正常代码 bin bash for i 0 i lt 5 i do sleep 3 echo i done done wait 等待前面的代码执行完成 多线程代码 bin bash for i 0 i lt 5 i do sleep 3 e
  • React基础(超级详细,有案例)

    源码地址 https github com BLKNjyty reactstudy 定义 用于构建用户界面的JavaScript库 1 发送请求获取数据 2 处理数据 3 操作DOM呈现页面 React只关注这个 简答的说 就是将数据渲染为
  • Learning from Imbalanced Data 非均衡数据学习问题

    本文分什么是非均衡数据 非均衡数据对算法的影响 怎样处理非均衡学习以及非均衡学习评估这四个方面进行叙述 在这里 正例或者星号代表多数类 负例或者圆圈代表少数类 1 非均衡问题 非均衡问题有多重形式 1 intrinsic 数据固有属性 数据
  • Oracle Redo log

    Redo Logs概述 The redo log records all changes made to data including both uncommitted and committed changes Oracle通过Redo来
  • 【千律】C++基础:List 链表循环删除元素,及其报错的解决方案

    报错原因 采用erase移除迭代器后 迭代器的值变为 572662307 无法作为迭代器继续运算 详细 当程序执行到 list int erase itor 时 满足条件的第一个元素被删除 从而导致 itor 指针被删除 使其不指向任何元素