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

一道迭代器失效练习题

随便写写

首先学习迭代器失效

传送门 : C+±—浅谈迭代器失效

学完迭代器失效之后做一道题呗

题目

在这里插入图片描述

分析

vector的迭代器为啥会失效
1、插入的时候扩容,转移空间出现野指针
2、删除的时候移动了元素,导致指针没指向正确的元素

list的迭代器为啥会失效
list底层不是一片连续的空间
1、list迭代器在插入的时候不会扩容,所以插入时不会失效
2、list迭代器在删除的时候会释放内存,出现野指针,迭代器会失效

deque的迭代器为啥会失效
deque的底层是一段段不连续的buffer小数组组成
1、deque插入的时候不会扩容,所以插入不会失效
2、deque的每一个buffer是连续的,要删除就会挪动元素,就会造成迭代器失效。

OK,
a、container = vector
删除的时候会移动元素,造成迭代器失效
b、container = list
删除的时候会出现野指针,但iter提前++了,并没有指向已经啥放的空间,并不是野指针,所以迭代器没有失效
c、container = deque
删除的时候移动了元素,造成迭代器失效


所以最后的答案是1和3,即vector和deque


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

相关文章:

  • 深入解读数据资产化实践指南(2024年)
  • 智能化军事【五】精确制导武器智能化实现
  • webrtc音频模块(三) windows Core Audio API及声音的播放
  • 在linux系统的docker中安装GitLab
  • Windbg常用命令
  • Vue.js 响应接口
  • SparkSQL FUNCTION相关操作
  • 基于Spring Boot的小区物业管理系统
  • 本地Gitblit使用
  • 使用Pandas高效读取和处理Excel数据
  • 静态内部类
  • MySQL中的redo log、 undo log、bin log
  • 提前购|基于SSM+vue的创新型产品提前购平台(源码+数据库+文档)
  • docker进阶 compose等
  • 指针 (五)
  • uniapp,vite整合windicss
  • CSS全面知识点及其应用
  • vue3项目如何设置同样的接口第一次请求有效,如果第二次请求同样的接口,则不去请求,因为第一次请求还没有返回数据
  • python 图片识别文字
  • WPS VBA插件使用说明
  • 【GoMate框架案例】讯飞大模型RAG智能问答挑战赛top10 Baseline
  • QWidget(c++)嵌入window环境的exe
  • class 7: vue.js 3 前端工程化
  • 面向 AI 学习者的 Python 快速入门(初学者)
  • 经纬恒润高压电池管理系统,助力新能源汽车飞速发展
  • [Linux]:文件(下)