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

C++ 容器迭代器失效

    迭代器失效很常见,无非是在迭代的上不要随意插入删除数据,然而,实际上迭代器失效反映的是一种现象,就是不要随意用容器的指针。

比如

std::vector<int> v{1,2,3};
int* ptr = &v[1];

这样使用有时候很常见,但是这是非常危险的行为。如果往v中加入元素,ptr就可能失效,产生段错误。

实际上,当用容器管理对象的时候

std::vector<obj> v;

千万不能随意将

&v[0]

这样的东西作为对象的指针随意传给别人,使用的时候需要考虑容器扩容带来的问题。

花了将近一天在多线程中遇到这种迭代器失效的问题。

相关文章:

  • 前端算法面试题1--栈、队列、链表、字典与哈希表
  • 操作系统-第二章【上】
  • 【软考中级攻略站】-软件设计师(1)-数值及其转换和数据表示
  • 基于大数据分析景区消费行为影响因素研究【消费等级预测、携程,去哪网数据抓取】
  • JVM GC 调优
  • DP和HDMI的产生根源
  • docker实战基础二(Docker基础命令)
  • vue3 动态组件component不生效问题
  • 深度学习(一)-感知机+神经网络+激活函数
  • Ollydbg提示:xxxxxx可能不是一个 32 位 PE 文件,无论如何都尝试载入吗?
  • 十一. 常用类
  • 【C++】C++ 多态的底层实现
  • pyautogui对鼠标的几种操作,附代码示例
  • 永劫无间:欺骗振刀+快速取消蓝色霸体+升龙+追击+下劈
  • mysql集群技术
  • 20-22 - 打造专业的编译环境
  • 人该怎样活着呢?48
  • Vue3 官方推荐状态管理库Pinia
  • 全球1km分辨率人口分布栅格数据
  • 2024国赛数学建模评价类算法解析,2024国赛数学建模C题思路模型代码解析
  • 中国人保不再设监事会,国寿集团未再设置监事长职务
  • 民生银行一季度净利127.42亿降逾5%,营收增7.41%
  • 匈牙利国会通过退出国际刑事法院的决定
  • A股三大股指收跌:地产股领跌,银行股再度走强
  • 李公明|一周画记:哈佛打响第一枪
  • 央行副行长谈美债和美元波动:单一市场、单一资产的变动,对外储影响总体有限