码农知识堂 - 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

  • 相关阅读:
    18.10 组复制常见问题
    3D工业相机及品牌集合
    CPU、GPU、IPU、NPU、TPU、LPU、MCU、MPU、SOC、DSP、FPGA、ASIC、GPP、ECU、
    基于单片机C51全自动洗衣机仿真设计
    DML操作
    从发现问题到创造价值 数据智能如何助力商家双11高质量增长?
    打造禹州中医药大模型,以AI驱动业务创新(内附孙思邈GPT内测版)
    SSM+springboot+vue+java企业公寓员工宿舍后勤管理网站
    第04章 SpringBoot Web开发(一)
    Python可视化招聘信息聚合系统 (附源码)!
  • 原文地址:https://blog.csdn.net/weixin_52958292/article/details/127721397
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号