Vector 先clear后再push_back会不会内存泄露?

一秒一次郎 2013-11-02 06:26:12
Vector v1中原本有数据,先用clear之后,重新push_back,由于clear只是重置了size并没有真正的释放内存,如果接着push_back会不会造成内存泄露?
...全文
1272 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
allenltiverson 2013-11-03
  • 打赏
  • 举报
回复
如果你放的是new的指针,不手动释放肯定会泄露,其余的肯定不会,他clear的时候会帮你清理
max_min_ 2013-11-02
  • 打赏
  • 举报
回复
不会! 而且和内存泄露没有半毛钱关系! 只要你自己没有手动new或者malloc内存空间的话,就一定不存在内存泄露的问题!
lunat 2013-11-02
  • 打赏
  • 举报
回复
如果你指的是标准库中的vector的话,不会。clear不会释放内容,push_back会直接使用之前的内存,vector析构的时候会自动释放这些内存。 如果clear剩余的内存太大而不可忍受,可是使用swap交换一下: std::vector<int> v1; ... for (int i = 0; i < 1000000; i++) v1.push_back(i); ... v1.clear(); std::vector<int>().swap(v1);
healer_kx 2013-11-02
  • 打赏
  • 举报
回复
这不叫内存泄露。

65,182

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧