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

为什么vector扩容会导致迭代器失效

vector内存特性 

vector的元素存储在连续内存中,迭代器本质是指向元素地址的指针。

扩容时,vector分配一块新的,更大的连续内存,将旧元素移动过去,然后释放旧内存。

旧内存地址失效,源迭代器指向的地址不再有元素。

扩容触发条件

当size()==capacity()时就触发扩容。

新内存与旧内存很可能地址不同

结果

扩容后,所有基于旧内存的迭代器都失效


http://www.kler.cn/a/599281.html

相关文章:

  • jangow靶机攻略
  • Jenkins 集成 SonarQube 代码静态检查使用说明
  • 内网(域)渗透测试流程和模拟测试day--2--漏洞利用getshell
  • 同一个局域网的话 如何访问另一台电脑的ip
  • 检波、限幅、钳位电路
  • 【深度学习】【目标检测】【OnnxRuntime】【C++】YOLOV3模型部署
  • 模版的特化引发的权限扩大的解决方法
  • 基于51单片机的双机通信温度检测报警系统的仿真设计
  • 腾讯云大模型知识引擎×DeepSeek | 企业应用快速接入手册
  • LVS-DR模式配置脚本
  • 5.4 位运算专题:LeetCode 137. 只出现一次的数字 II
  • 模糊推理规则生成方法详解
  • CentOS8 安装 Docker-CE
  • FPGA中串行执行方式之流水线(Pipeline)
  • Spring MVC配置详解:从历史到实战
  • Node.js系列(6)--安全实践指南
  • 基于PySide6与pycatia的CATIA绘图文本批量处理工具开发实践
  • 永久禁用 firewalld: systemctl disable firewalld
  • C++类与对象的第二个简单的实战练习-3.24笔记
  • MobaXterm配置ssh端口转发autodl服务器网页页面