vectoe 2
假如现在不扩容上图就是下图对应的另外一种迭代器失效在实际应用时我们并不知道insert后是扩容还是没有扩容从而判断出旧p是否是野指针还能不能用所以我们认为使用insert之后不管是否扩容我们都认为迭代器失效不能用旧p位置要使用旧p也要将它更新再用不同平台对于使用insert之后若再次使用旧p有不同反应vs会直接报错g不会g下使用insert扩容后依旧给旧p位置赋值如下图程序居然也没有崩溃即系统没有检查出来。万一系统将已经释放的空间拿去重新使用会直接将其中数据修改很危险。g使用insert后再使用旧p,扩不扩容都不报错。vs使用insert后再使用旧p,扩不扩容都报错所以使用insert之后vs做的处理比g好11.erase模拟实现删除后是否认为删除位置及以后位置的迭代器失效删除后不同平台是否会进行缩容处理若缩容还要注意删除位空间是否被缩容归还给系统完成模拟1.现在删除插入值中的偶数完成代码运行正常2.但有多个偶数时删不干净分析发现第一个偶数2利用erase删除it位置2it后所有元素都自动向前移位finish--此时it依旧是原来指向2的旧指针it就指向了4。发现偶数4(第一个)利用erase删除it位置4it后所有元素都自动向前移位finish--此时it依旧是原来指向偶数4(第一个)的旧指针但此时该位置是第二个4it就跳过4指向了53.有时奔溃 如下插入1234在将2删除it后所有元素向前移动一位finish--it依旧指向原先2位置该位置现在是3跳过3。it指向4erase删除4函数内itend(),finish--,此时finish指向4it此时it指向4后的位置此时it已经越界且it在后finish在前两者已经错开函数内it、end永远不相等。若再次调用erase此时finishpos,断言报错。以上三种情况在g运行结果也会发生和在VS上运行一样但是用vs库里的vector都进行了强制检查,一个都过不去和之前insert一样因为erase之后还在用it,。库中的erase删除完成后移位完成会返回一个迭代器迭代器指向被删除元素的下一个元素位置的指针。所以对于使用库中的erase后不管平台锁不锁荣我们也都认为旧的迭代器失效要用也要用erase返回的新指针更新下再用。我们模拟实现时并没有返回值正确使用模拟实现erase的代码应该是这样如果是偶数时才会删除之后it不如果是奇数才it几乎所有容器erase后迭代器失效但insert不一定看是否扩容操作失效范围有效部分返回迭代器erase(pos)pos以及pos 之后全部迭代器pos 之前迭代器有效指向被删除元素的下一个元素有效insert(pos,val) 不扩容pos以及pos 之后全部迭代器pos 之前迭代器有效指向新插入的元素有效insert(pos,val) 触发扩容容器全部迭代器全部失效无指向新插入的元素有效string也有迭代器失效12.resize下图两种写法一样 自定义模板内给缺省值一般都是如下图T一样给模拟实现13.拷贝析构函数如下图 v v1 浅拷贝了若此时析构不会崩溃因为自动生成的析构函数不会释放申请的资源从而造成内存泄漏补上析构函数程序崩溃 v v1 浅拷贝了所以需要手动写深拷贝的拷贝构造引用。e是元素的引用不是拷贝副本e是对v中每一个元素的别名不会拷贝元素这里显示地写了构造自动生成的默认构造就不会生成了所以需要显示写勾造函数因为我们给了缺省值且无自定义成员变量所以仅仅如下图写即可运行成功改名称为回看拷贝构造发现里面的push_back可能还要扩容这样效率有点低改进提前开和被拷贝对象有效长度一样大的空间push_back只在该空间内放值即可14.赋值 operator传统写法clear函数不用将申请的空间释放只是将数据清空即可运行成功现代写法实参是v3形参v是传值会调用拷贝构造函数把v3深拷贝一份生成局部临时对象v交换this(v1)和局部对象v的三个指针。函数结束局部变量v出作用域自动调用析构函数把 v1 原来旧堆内存释放掉。return *this支持链式赋值 abc。这里的swap是我们自己模拟出来的14.用迭代器区间构造 的模拟实现模拟实现测试运行成功我们先在验证其他容器调用它的情况 添加list15.模拟用n个val初始化vector对象的函数将string类包进来再次测试1.什么叫 “迭代器”迭代器像一个指向容器中某个元素的游标需满足以下一个或多个功能解引用 *it拿到它指向的元素it向后移动指向下一个元素! / 判断是否走到末尾迭代器根据拥有的功能分为不同迭代器。下一节进一步介绍InputIterator只是模板参数名字编译器不会把它当成迭代器也不会校验你传入的是否是迭代器只是使用时期望使用者传入的实参是迭代器。模板形数匹配规则同一个模板参数InputIterator要求两个实参的类型可以推导成同一个类型。若满足此规则就可以优先调用该函数模板上图显示报错报到迭代器区间初始化上了为什么两个实参的类型可以推导成int型在与两种识别方式比较后选择最匹配的函数而后*first相当于是对int进行解引用当然报错解决方法直接给更加合适的函数16.测试 vector容器内是string类对象没扩容· 成功运行再次插入扩容分析只要vector内是申请了资源的自定义类型memcpy就会浅拷贝出错解决办法将memcpy那句代码替换为循环将旧空间元素string类对象赋值给新空间元素string类对象这样的话相当于调用string类对象的运算符重载函数深拷贝了重新运行长的函数定义记得放到类外若是函数模板到时候记得加模板参数前不要写类名记得写类型如下

相关新闻

构建LLM智能体知识公地:实现经验继承与错误共享的协作框架

构建LLM智能体知识公地:实现经验继承与错误共享的协作框架

在探索大语言模型(LLM)驱动的智能体(Agent)时,一个核心挑战在于如何让智能体不仅执行单次任务,还能像人类团队一样,通过协作、经验传承和试错来持续学习和进化。传统的智能体设计往往侧重于单次…

2026/8/18 11:01:11 阅读更多 →
PrimeOS版本选择指南:根据电脑硬件挑选Mainline、Standard或Classic

PrimeOS版本选择指南:根据电脑硬件挑选Mainline、Standard或Classic

1. 项目概述:为不同硬件选择合适的PrimeOS版本 如果你手头有一台闲置的旧电脑,或者想给性能一般的笔记本找个新用途,把它变成一个安卓游戏机或移动办公终端,PrimeOS绝对是一个值得考虑的选项。它本质上是一个基于Android-x86项目的…

2026/8/18 11:00:09 阅读更多 →
开源AI工作台MindsHub实测:多模型路由如何解决Claude单模型绑定痛点

开源AI工作台MindsHub实测:多模型路由如何解决Claude单模型绑定痛点

如果你最近在尝试用 Claude 来辅助编程、写作或者处理一些复杂的文档任务,大概率会遇到一个让人头疼的限制:Claude 的官方桌面应用(Claude Desktop)或一些集成工具,往往会把你的工作区和一个特定的模型版本“绑定”在一…

2026/8/18 11:00:09 阅读更多 →

最新新闻

免费开源的Steam创意工坊下载器WorkshopDL保姆级入门:不装Steam客户端也能把模组装进游戏

免费开源的Steam创意工坊下载器WorkshopDL保姆级入门:不装Steam客户端也能把模组装进游戏

免费开源的Steam创意工坊下载器WorkshopDL保姆级入门:不装Steam客户端也能把模组装进游戏 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 先讲一个很多人遇到过的小…

2026/8/18 11:32:42 阅读更多 →
手动点了 3000 次之后,我把这份差事交给了开源鼠标连点器

手动点了 3000 次之后,我把这份差事交给了开源鼠标连点器

手动点了 3000 次之后,我把这份差事交给了开源鼠标连点器 【免费下载链接】MouseClick 🖱️ MouseClick 🖱️ 是一款功能强大的鼠标连点器和管理工具,采用 Qt Widget 开发 ,具备跨平台兼容性 。软件界面美观 &#xff…

2026/8/18 11:32:42 阅读更多 →
三步本地解锁Wand专业版:Wand-Enhancer从构建到手机遥控的完整上手

三步本地解锁Wand专业版:Wand-Enhancer从构建到手机遥控的完整上手

三步本地解锁Wand专业版:Wand-Enhancer从构建到手机遥控的完整上手 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 深夜开黑&#xff0…

2026/8/18 11:32:42 阅读更多 →
硬盘里十万张照片只配睡大觉?用这招把“以图搜图“变成你的本地秒级搜索引擎

硬盘里十万张照片只配睡大觉?用这招把“以图搜图“变成你的本地秒级搜索引擎

硬盘里十万张照片只配睡大觉?用这招把"以图搜图"变成你的本地秒级搜索引擎 【免费下载链接】ImageSearch 基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch …

2026/8/18 11:32:42 阅读更多 →
原神帧率解锁保姆级指南:3分钟突破60帧上限,一键畅享丝滑高帧率画面

原神帧率解锁保姆级指南:3分钟突破60帧上限,一键畅享丝滑高帧率画面

原神帧率解锁保姆级指南:3分钟突破60帧上限,一键畅享丝滑高帧率画面 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 玩原神时总觉得画面"差一口气"&…

2026/8/18 11:32:42 阅读更多 →
基于YOLO26邮票检测系统1:邮票检测数据集说明(含下载链接)

基于YOLO26邮票检测系统1:邮票检测数据集说明(含下载链接)

一. 前言 本篇博客是《基于YOLO26邮票实时检测系统》系列文章之《邮票检测数据集说明(含下载链接)》,网上有很多邮票检测数据集的数据,百度一下,一搜一大堆,但质量参差不齐,很多不能用,即使一个一个的看也…

2026/8/18 11:31:42 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →