map/vector/set真正释放内存

综合一句话:vector只要clear就会真正释放内存;map、set、unordered_map只能通过malloc_trim(0)才能真正释放内存

方法 map vector set unordered_map
clear() × × ×
clear()后malloc_trim(0)
clear()后置空容器 × × ×
clear()后swap × × ×
//置空容器
test_map = map<int, string>();

//swap
map<int, string> null_map; test_map.swap(null_map);
//或
map<int, string>().swap(test_map);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 谨慎使用STL 最近解决了一个因为大量使用STL造成的严重内存泄漏问题,再次记录下。 上周上线了基于用户tag的推...
    lxfeng阅读 7,576评论 -1 1
  • STL部分 1.STL为什么广泛被使用 C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vec...
    杰伦哎呦哎呦阅读 4,346评论 0 9
  • 抱佛脚一时爽,一直抱佛脚一直爽!这篇文章总结常见的c++面试问题~因为是抱佛脚,所以结构上没有什么逻辑...参考链...
    山幺幺阅读 736评论 0 0
  • 前言 本文是题主准备面试时记录下的笔记整理而来,稍显粗陋,还请各位撸友勿喷哈! Topic 目录数组字符串链表二叉...
    rh_Jameson阅读 1,785评论 2 63
  • 0.目录 简介 关系 介绍3.1 容器(Container)3.2 算法(Algorithm)3.3 迭代器(It...
    lllnan阅读 926评论 0 1