免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8170 | 回复: 3
打印 上一主题 下一主题

[C++] c++, hash_map 如何释放指针元素的空间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-11 10:11 |只看该作者 |倒序浏览
大家好,我在一个程序中,为了方便使用hash_map,保存指针变量,
比如 hash_map<char *, int>
这样在释放内存的时候,我只能遍历hash_map
从 begin() 到 end(), 然后检查 (*iter).first != NULL时,释放该指针指向的空间,
但是很重要的问题, hash_map在初始化时,并没有把其中的元素都清0, 所以,即使(*iter).first!=NULL
也不能判断,该空间是自己申请的空间。

不知道其他人,对这种内存释放有什么好的方法没,我的一种笨的方法就是用另外一个的buf保存所有申请的char*空间,然后循环释放

谢谢

论坛徽章:
0
2 [报告]
发表于 2007-04-11 11:24 |只看该作者
hash_map的单元都是自己分配的吧
也就是说,当你创建一个hash_map实例的时候,他的node数为0
你先后添加8个node,在将要释放的时候,begian to end之间只有8个node
所以每个都应该释放,不需要判断NULL

我的理解是这样的

论坛徽章:
0
3 [报告]
发表于 2007-04-11 13:53 |只看该作者
这种一般用智能指针

论坛徽章:
0
4 [报告]
发表于 2007-04-11 16:36 |只看该作者
已解决,多谢楼上俩位
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP