c – 使用模板删除任何容器

c – 使用模板删除任何容器,第1张

概述我有很多代码,我在删除在其中有指针的向量容器,也就是说,我必须首先删除所有的指针,然后清除容器.每次我会遍历并手动删除指针(我知道stl :: algorithms for_each).为了规避所有的代码,我创建了一个模板,用于删除所有具有指针的向量容器.到现在为止还挺好. 现在我有几个容器类型,包括地图,并发容器等,到目前为止,所有功能都有相同的功能,只要删除.我拥有的DeleteContain 我有很多代码,我在删除在其中有指针的向量容器,也就是说,我必须首先删除所有的指针,然后清除容器.每次我会遍历并手动删除指针(我知道stl :: algorithms for_each).为了规避所有的代码,我创建了一个模板,用于删除所有具有指针的向量容器.到现在为止还挺好.

现在我有几个容器类型,包括地图,并发容器等,到目前为止,所有功能都有相同的功能,只要删除.我拥有的DeleteContainer(std :: vector< T *& VecIn)函数只能在上面提到的向量上工作.有没有什么办法使其通用到足以在所有容器上工作?

EDIT: Thanks for all the answers,I wish I Could select more than one. To anybody who stumbles onto this question,read all the answers and not just the selected one as they all provIDe great info.

解决方法 你已经有了一个有效的答案,只是为了提供一个替代方案,我相信你应该考虑使用 Boost Pointer Container,让它处理内存管理:

This library therefore provIDes
standard-like containers that are for
storing heap-allocated or cloned
objects (or in case of a map,the
mapped object must be a heap-allocated
or cloned object). For each of the standard containers there is a pointer container equivalent that takes ownership of the objects in an exception safe manner.

总结

以上是内存溢出为你收集整理的c – 使用模板删除任何容器全部内容,希望文章能够帮你解决c – 使用模板删除任何容器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存