qq_26372391 2020-04-28 16:18 采纳率: 0%
浏览 369

c++在vector中push一个引用类型的变量,这个变量怎么变成传值

vector< TextureItem > po;
TextureItem it;
TextureItem &it2 = it;
po.push_back(it);
po.push_back(it2);

我理解的最终TextureItem的析构方法走三次,但最终走了四次,it和it2是同一个对象,只会析构一个,另外两个push_back是值的传递,会被析构两次,总共三次,但实际情况为什么是4次?

  • 写回答

1条回答 默认 最新

  • jiquan393941336 2020-04-30 10:44
    关注

    因为你的vector被释放重新创建了。 所以一般要 po.reserve(10),设置容量。不然vector的效率也是个坑。

    评论

报告相同问题?

悬赏问题

  • ¥15 各位帮我看看为什么我写的代码按钮按了没有反应,deveco studio,
  • ¥20 云南省制造业对经济增长的影响目录应该怎么罗列,就是现状那部分
  • ¥15 绘制饼图及环形图(饼图和环形图示)
  • ¥15 求一套完整的纵横四海程序。
  • ¥20 AD7606采集到电压乱飘,怎么解决呢
  • ¥60 有没有人查监控方面厉害的呢
  • ¥15 绑住完成C语言的任务
  • ¥20 vue项目打包Android apk,实现小说文本朗读功能
  • ¥50 IPv6网络,br-lan拿不到地址无法全局路由
  • ¥15 微信小程序分页查询如何设置下一页