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

vector中reserve导致的析构函数问题

接上一节vector实现,解决杨辉三角问题时,我在最后调试的时候,发现return vv时,调用析构函数,到第四步时才析构含有14641的vector。我设置了一个全局变量i来记录。

初始为35:

 当为39时,也就是第四次:发现vv中的第五个,也就是含14641的vector与当前执行析构函数的this指针指向一样,也就是该vector在析构!

那么,按常理来说,应该时vector<vector>中最后的元素先析构,但现在为什么是第四个呢?其实是因为在reserve函数里,开辟了8个空间: 你看,初始为0,给了4个空间,而push_back第五个vector时要开辟空间,开辟二倍就是8个空间!在resrve中T* tmp=new T[n],开辟了8个空间,所以在最后析构函数时,是第四个被释放,也就是倒数第四个!

相关文章:

  • 如何提高自己的实际操作技能以通过客运从业资格考试?
  • Python实现对大批量Word文档进行自动添加页码(16)
  • 一张纸决定的高度
  • DAY01:【ML 第二弹】高等数学
  • 初学c语言20(动态内存管理)
  • SYN Flood攻击:原理、危害与防御指南
  • 产品迭代与放弃的判断:MVP、PMF 与 Scale Fit 的三重验证
  • 开发者工具箱-鸿蒙金额转换开发笔记
  • (泛函分析)范数和收敛
  • LangChain
  • 讲述我的PLC自学之路 第九章
  • WHAT - 兆比特每秒 vs 兆字节每秒
  • 品鉴JS的魅力之防抖与节流【JS】
  • 2025年—ComfyUI_最新插件推荐及使用(实时更新)
  • 2942. 查找包含给定字符的单词
  • 【AI News | 20250523】每日AI进展
  • 文件夹图像批处理教程
  • NLP学习路线图(六):数据处理与可视化
  • Vue框架1(vue搭建方式1,vue指令,vue实例生命周期)
  • Symbol、Set 与 Map:新数据结构探秘
  • 生态农庄网站模板/手机优化软件下载
  • 企业管理控制系统/百度seo查询系统
  • flash网站建设价格/郑州seo使用教程
  • 武汉网站建设报价/企业seo外包公司
  • 网站被k了怎么做/play商店
  • 太原网站建设开发公司/广州市运营推广公司