码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【C++】迭代器失效问题:


    vector插入元素时

    1.当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。

    2.当插入(push_back)一个元素后,如果需要扩容,先前的空间就会被析构,此时first,last,end操作返回的迭代器都会失效。

    3.当进行删除操作(erase,pop_back)后,指向删除点的迭代器全部失效;指向删除点后面的元素的迭代器也将全部失效。

    解决: 提前扩容,删除时返回被删除点的下一个迭代器的值

    vector和deque删除元素时:

    由于是连续的空间,所以删除一个元素后,其他数据的地址发生了变化,之前获取的迭代器根据原有信息就访问不到正确的数据。
    解决方法:erase返回下一个有效迭代器的值

    map、set、multiset、map、multimap,树形数据结构。

    删除了一个元素,整棵树都会调整,但是单个节点在内存中的地址没有变化,变化的是各节点之间的指向关系。删除一个结点不会对其他结点造成影响。
    erase迭代器只是被删元素的迭代器失效。

    list,链表型数据结构。双向链表,

    使用不连续分配的内存,删除运算使指向删除位置的迭代器失效,不会使其他迭代器失效。

    缩容

    可以使用swap

  • 相关阅读:
    HTML+CSS+JS环境保护网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计
    Vue监视数据的原理
    20 个实例玩转 Java 8 Stream
    AcWing 5180. 正方形泳池
    RNN经典案例(人名分类器)
    TensorFlow 的基本概念和使用场景。
    函数式接口
    路由跳转时的页面状态保存
    Flux脚本语言基础使用-数据类型(InFluxDB 查询语言)
    10个python爬虫入门实例
  • 原文地址:https://blog.csdn.net/weixin_52958292/article/details/127721397
  • 最新文章
  • 深度学习进阶(二十二)T5:NLP任务的首次大一统
    XRPC:一个能写进简历的 C++ 高性能分布式 RPC 框架,QPS 13万+
    Windows 下切换 Java 环境太复杂了,我做了个 cli 工具,可以快速安装,切换 Java 版本
    SHP文件与PostGIS数据库Geom字段:WKT和EWKB相互转换SQL
    Spring AI 2.0 GA 倒计时:先别急,来看看 Java AI 框架的另一条路
    【php】老旧PHP项目(PHP 5.6)本地环境搭建与踩坑记录
    15. 别再硬写提示词了!LangChain ChatPromptTemplate核心实战
    从控制论看 Harness Engineering:当反馈回路终于能在"重要的地方"闭合
    一次 OOM 线上排查实录
    AI 测试全场景提效:功能 / 性能 / 安全 / 自动化,用 AI 重塑测试工作流
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号