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

深入理解STL list erase

1、list erase后,当前的迭代器失效,返回指向下一个节点的迭代器

#include<list>
#include<iostream>
#include<vector>
using namespace std;int main()
{list<int> ls;ls.push_back(1);ls.push_back(2);ls.push_back(3);list<int>::iterator it = ls.begin();for ( it = ls.begin(); it != ls.end();){if (*it == 2){ls.erase(it);}else{cout << *it << endl;it++;}}return 0;
}

ls.erase(it);后,it失效,再对其进行++将会导致软件崩溃,erase后返回一个新的有效的迭代器 it = ls.erase(it);才是正确的

list erase源码如下

    iterator erase(const const_iterator _Where) noexcept /* strengthened */ {
#if _ITERATOR_DEBUG_LEVEL == 2_STL_VERIFY(_Where._Getcont() == _STD addressof(_Mypair._Myval2), "list erase iterator outside range");
#endif // _ITERATOR_DEBUG_LEVEL == 2const auto _Result = _Where._Ptr->_Next;//销毁当前节点_Node::_Freenode(_Getal(), _Mypair._Myval2._Unlinknode(_Where._Ptr));//返回一个新的迭代器return _Make_iter(_Result);}_Nodeptr _Unlinknode(_Nodeptr _Pnode) noexcept { // unlink node at _Where from the list_Orphan_ptr2(_Pnode);_Pnode->_Prev->_Next = _Pnode->_Next;_Pnode->_Next->_Prev = _Pnode->_Prev;--_Mysize;return _Pnode;}

相关文章:

深入理解STL list erase

1、list erase后&#xff0c;当前的迭代器失效&#xff0c;返回指向下一个节点的迭代器 #include<list> #include<iostream> #include<vector> using namespace std;int main() {list<int> ls;ls.push_back(1);ls.push_back(2);ls.push_back(3);list&…...

使用 Python 从 ROS Bag 中提取图像:详解与实现

在机器人应用中&#xff0c;ROS (Robot Operating System) 是一个常见的框架。ROS Bag&#xff08;rosbag&#xff09;是 ROS 中用于记录和回放数据流&#xff08;例如传感器数据、话题消息等&#xff09;的一种强大工具。有时&#xff0c;我们需要将存储在 rosbag 文件中的图像…...

MYSQL执行一条update语句,期间发生了什么

客户端先通过连接器建立连接&#xff0c;连接器自会判断用户身份&#xff1b; 因为这是一条 update 语句&#xff0c;所以不需要经过查询缓存&#xff0c;但是表上有更新语句&#xff0c;是会把整个表的查询缓存清空的&#xff0c;所以说查询缓存很鸡肋&#xff0c;在 MySQL 8…...

前端性能优化思路

前端性能优化需要从多方面入手,包括减少资源加载时间、优化页面渲染、利用浏览器缓存、使用CDN加速,服务端渲染和预渲染、性能监控和分析。需要综合运用这些优化策略才能显著提升网页或应用的性能和用户体验 一、减少资源加载时间 1. 代码分割 原理: 代码分割允许我们将代…...

有向图判环(leetcode207,leetcode210)

有向图判环&#xff08;leetcode207&#xff0c;leetcode210&#xff09; 有向图判环 #include <iostream> #include <vector> using namespace std;struct graph {int V; // 顶点的数量vector<vector<int>> adj; // 邻接表数组…...

概率论得学习和整理25:EXCEL 关于直方图/ 频度图 /hist图的细节,2种做hist图的方法

目录 1 hist图的特点 2 hist的设置技巧&#xff1a;直接生成的hist图往往很奇怪不好用&#xff1a;因为横轴的分组不对 3 如何修改分组 4 设置开放边界&#xff0c;把长尾合并&#xff0c;得到hist图1 5 用原始表得到频数表 6 用上面的频数图做柱状图&#xff0c;再修改&…...

PHP8.4下webman直接使用topthink/think-orm

环境信息 操作系统win11php 8.4.1webman-framework ^1.6.8MySQL 8.4.3topthink/think-orm ^3.0 说明 PHP8.3以下版本 直接使用webman提供的webman/think-orm更方便。 PHP 环境换为 8.4 使用webman/think-orm 报了个错&#xff1b;所以换topthink/think-orm&#xff0c;根据文…...

【从零开始入门unity游戏开发之——C#篇04】栈(Stack)和堆(Heap),值类型和引用类型,以及特殊的引用类型string,垃圾回收( GC)

文章目录 知识回顾一、栈&#xff08;Stack&#xff09;和堆&#xff08;Heap&#xff09;1、什么是栈和堆2、为什么要分栈和堆3、栈和堆的区别栈堆 4、总结 二、值类型和引用类型1、那么值类型和引用类型到底有什么区别呢&#xff1f;值类型引用类型 2、总结 三、特殊的引用类…...

基于微信小程序的小区疫情防控ssm+论文源码调试讲解

第2章 程序开发技术 2.1 Mysql数据库 为了更容易理解Mysql数据库&#xff0c;接下来就对其具备的主要特征进行描述。 &#xff08;1&#xff09;首选Mysql数据库也是为了节省开发资金&#xff0c;因为网络上对Mysql的源码都已进行了公开展示&#xff0c;开发者根据程序开发需…...

第P2周:Pytorch实现CIFAR10彩色图片识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标 实现CIFAR-10的彩色图片识别实现比P1周更复杂一点的CNN网络 具体实现 &#xff08;一&#xff09;环境 语言环境&#xff1a;Python 3.10 编 译 器: …...

CTFHub 命令注入-综合练习(学习记录)

综合过滤练习 命令分隔符的绕过姿势 ; %0a %0d & 那我们使用%0a试试&#xff0c;发现ls命令被成功执行 /?ip127.0.0.1%0als 发现一个名为flag_is_here的文件夹和index.php的文件&#xff0c;那么我们还是使用cd命令进入到文件夹下 http://challenge-438c1c1fb670566b.sa…...

OpenCV目标检测 级联分类器 C++实现

一.目标检测技术 目前常用实用性目标检测与跟踪的方法有以下两种&#xff1a; 帧差法 识别原理&#xff1a;基于前后两帧图像之间的差异进行对比&#xff0c;获取图像画面中正在运动的物体从而达到目标检测 缺点&#xff1a;画面中所有运动中物体都能识别 举个例子&#xf…...

QT6 Socket通讯封装(TCP/UDP)

为大家分享一下最近封装的以太网socket通讯接口 效果演示 如图&#xff0c;界面还没优化&#xff0c;后续更新 废话不多说直接上教程 添加库 如果为qmake项目中&#xff0c;在.pro文件添加 QT network QT core gui QT networkgreaterThan(QT_MAJOR_VERS…...

elasticsearch设置密码访问

1 用户认证介绍 默认ES是没有设置用户认证访问的&#xff0c;所以每次访问时&#xff0c;直接调相关API就能查询和写入数据。现在做一个认证&#xff0c;只有通过认证的用户才能访问和操作ES。 2 开启加密设置 1.生成证书文件 /usr/share/elasticsearch/bin/elasticsearch-…...

彻底理解如何优化接口性能

作为后端研发&#xff0c;必须要掌握怎么优化接口的性能或者说是响应时间&#xff0c;这样才能提高系统的系能&#xff0c;本文通过如下两个方面进行分析&#xff1a; 一.后端代码 有如下几步&#xff1a; 1.缓存机制 这是最场景的方式&#xff0c;当使用了缓存后&#xff0c;…...

C# 位运算

一、数据大小对应关系 说明&#xff1a; 将一个数据每左移一位&#xff0c;相当于乘以2。因此&#xff0c;左移8位就是乘以2的8次方&#xff0c;即256。 二、转换 1、 10进制转2进制字符串 #region 10进制转2进制字符串int number1 10;string binary Convert.ToString(num…...

【Flink-scala】DataStream编程模型之状态编程

DataStream编程模型之状态编程 参考&#xff1a; 1.【Flink-Scala】DataStream编程模型之数据源、数据转换、数据输出 2.【Flink-scala】DataStream编程模型之 窗口的划分-时间概念-窗口计算程序 3.【Flink-scala】DataStream编程模型之窗口计算-触发器-驱逐器 4.【Flink-scal…...

RabbitMQ的核心组件有哪些?

大家好&#xff0c;我是锋哥。今天分享关于【RabbitMQ的核心组件有哪些&#xff1f;】面试题。希望对大家有帮助&#xff1b; RabbitMQ的核心组件有哪些&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RabbitMQ是一个开源的消息代理&#xff08;Messag…...

【Linux基础】基本开发工具的使用

目录 一、编译器——gcc/g的使用 gcc/g的安装 gcc的安装&#xff1a; g的安装&#xff1a; gcc/g的基本使用 gcc的使用 g的使用 动态链接与静态链接 程序的翻译过程 1. 一个C/C程序的构建过程&#xff0c;程序从源代码到可执行文件必须经历四个阶段 2. 理解选项的含…...

常见的数据结构和应用场景

数据结构是计算机科学中的基础概念&#xff0c;用于组织和存储数据&#xff0c;以便能够高效地访问和修改。下面是几种常见数据结构及其代表性应用场景&#xff1a; 1. 数组&#xff08;Array&#xff09; 问题解决&#xff1a;数组是一种线性数据结构&#xff0c;用于存储相…...

基于Dify的智能问答系统:从意图识别到规范化回复的全流程设计

1. 从零开始理解Dify智能问答系统 第一次接触Dify时&#xff0c;我完全被它的可视化编排能力惊艳到了。这个平台就像搭积木一样&#xff0c;让不懂代码的产品经理也能设计出复杂的AI应用。举个实际例子&#xff0c;去年我们团队要做一个游泳健身领域的问答助手&#xff0c;传统…...

Java 零基础全套视频教程,String StringBuffer StringBuilder 类,笔记142-146

Java 零基础全套视频教程&#xff0c;String StringBuffer StringBuilder 类&#xff0c;笔记142-146 一、参考资料 【尚硅谷Java零基础全套视频教程(宋红康主讲&#xff0c;java入门自学必备)】 https://www.bilibili.com/video/BV1PY411e7J6/?p142&share_sourcecopy_web…...

为什么选择Zabbix而不是Prometheus?K8s监控工具深度对比与实战配置

Zabbix与Prometheus在Kubernetes监控中的技术决策指南 当企业级容器平台需要构建监控体系时&#xff0c;技术选型往往成为困扰架构师的核心难题。作为当下最主流的两个开源监控解决方案&#xff0c;Zabbix与Prometheus在Kubernetes生态中的表现各有千秋。本文将基于实际生产环境…...

Tetrazine-NHBoc,cas:1380500-93-5,四嗪-氨基叔丁酯的结构特点

Tetrazine-NHBoc&#xff08;四嗪-氨基叔丁酯&#xff09;是一种结合了四嗪基团和N-叔丁氧羰基&#xff08;NHBoc&#xff09;保护基的有机化合物&#xff0c;以下是对其的详细介绍&#xff1a;一、基本信息中文名称&#xff1a;四嗪-氨基叔丁酯英文名称&#xff1a;Tetrazine-…...

快速上手语音情感分析:Emotion2Vec+系统参数配置与结果解读

快速上手语音情感分析&#xff1a;Emotion2Vec系统参数配置与结果解读 1. 系统概述与核心价值 Emotion2Vec Large语音情感识别系统是一款基于深度学习的语音分析工具&#xff0c;能够自动识别语音中蕴含的情感状态。该系统由科哥团队基于阿里达摩院ModelScope平台的原始模型进…...

别再手动下载了!教你用Python+Schedule库打造个人YouTube视频自动下载工具

Python自动化神器&#xff1a;用Schedule库打造智能视频下载系统 每次手动下载YouTube视频不仅耗时耗力&#xff0c;还容易错过更新。作为Python开发者&#xff0c;我们完全可以用代码解放双手&#xff0c;打造一个全自动的视频下载系统。今天要分享的这套方案&#xff0c;结合…...

ide-eval-resetter:突破JetBrains IDE试用期限制的创新方案——2026开发者必备指南

ide-eval-resetter&#xff1a;突破JetBrains IDE试用期限制的创新方案——2026开发者必备指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 问题引入&#xff1a;JetBrains IDE试用期限制的痛点分析 作为开发…...

企业级母婴商城系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着互联网技术的快速发展和电子商务的普及&#xff0c;母婴用品市场呈现出蓬勃发展的态势。年轻父母对于母婴产品的需求日益多样化&#xff0c;传统的线下零售模式已无法满足其便捷、高效、个性化的购物需求。因此&#xff0c;构建一个功能完善、安全可靠的企业级母婴商城…...

别再死记公式了!用Multisim仿真软件,10分钟搞懂555定时器的三种工作模式

用Multisim玩转555定时器&#xff1a;可视化学习三种工作模式的终极指南 记得第一次接触555定时器时&#xff0c;我被那些复杂的公式和抽象的工作原理搞得晕头转向。直到一位资深工程师告诉我&#xff1a;"别急着背公式&#xff0c;先看看它怎么工作。"这句话彻底改变…...

Phi-3-mini-4k-instruct-gguf入门必看:q4-GGUF量化对中文语义保留的影响实测

Phi-3-mini-4k-instruct-gguf入门必看&#xff1a;q4-GGUF量化对中文语义保留的影响实测 1. 模型简介 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本&#xff0c;特别适合中文场景下的问答、文本改写、摘要生成等任务。这个经过量化的模型版本在…...