博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
map的erase()释放内存
阅读量:5820 次
发布时间:2019-06-18

本文共 1922 字,大约阅读时间需要 6 分钟。

STL中的map调用erase(it),当value值为指针时,释放内存:

1 #include 
2 #include
3 #include
4 5 using namespace std; 6 struct value{ 7 int i; 8 std::string test; 9 };10 11 int main()12 {13 std::map
test_map;14 for(int i=0; i<10; ++i){15 value* tmp = new value();16 tmp->i = i;17 tmp->test = "test";18 test_map.insert(make_pair(i, tmp));19 } 20 21 for(std::map
::iterator it=test_map.begin(); it!=test_map.end();){22 std::cout << "first " << it->first << " second " << (it->second)->i <<" "<< (it->second)->test << std::endl;23 delete it->second;24 it->second = NULL;25 //test_map.erase(it); //迭代器失效;26 test_map.erase(it++); //防止迭代器失效,切记、切记27 } 28 29 return 0;30 }31 32 root@u18:~/cp/test# g++ map3.cpp -g -Wall33 root@u18:~/cp/test# ls -lt a.out34 -rwxr-xr-x 1 root root 87224 Jul 9 11:00 a.out35 root@u18:~/cp/test# valgrind --tool=memcheck --leak-check=full ./a.out36 ==28426== Memcheck, a memory error detector37 ==28426== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.38 ==28426== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info39 ==28426== Command: ./a.out40 ==28426== 41 first 0 second 0 test42 first 1 second 1 test43 first 2 second 2 test44 first 3 second 3 test45 first 4 second 4 test46 first 5 second 5 test47 first 6 second 6 test48 first 7 second 7 test49 first 8 second 8 test50 first 9 second 9 test51 ==28426== 52 ==28426== HEAP SUMMARY:53 ==28426== in use at exit: 0 bytes in 0 blocks54 ==28426== total heap usage: 30 allocs, 30 frees, 930 bytes allocated55 ==28426== 56 ==28426== All heap blocks were freed -- no leaks are possible57 ==28426== 58 ==28426== For counts of detected and suppressed errors, rerun with: -v59 ==28426== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)

 

转载地址:http://hmzdx.baihongyu.com/

你可能感兴趣的文章
简单文件/目录操作脚本
查看>>
系统日志和loganalyzer
查看>>
http请求内容压缩学习笔记
查看>>
Linux的NFS共享
查看>>
zabbix报警升级缺陷及简单的弥补办法小结
查看>>
Black Jack
查看>>
C++中堆和栈的完全解析
查看>>
【Asp.Net】SQL语句中select case when的用法
查看>>
Schema与DTD举例
查看>>
监控摄像机分类
查看>>
httpd本机可以访问但局域网不可访问
查看>>
计算几何的一些代码。。。
查看>>
驴妈妈旅游爬虫
查看>>
sqlserver 如何查看sqlserver的版本号 。
查看>>
【00】KVM中小企业实践-目录
查看>>
【10g新特性之-跨平台传输表空间】
查看>>
win10下的ramdisk
查看>>
HDU 4798 Skycity【计算机几何】【阅读题】
查看>>
添加共享库文件.so
查看>>
VMware vSphere 初体验 5.1版本
查看>>