在C++11中用shared_ptr管理动态数组,这是个好的实践吗?
我目前在用C++做算法4,我用shared_ptr管理动态数组,以此实现类似Java的引用那样的垃圾回收,而不用每次手动delete [],请问这个思路有什么不足吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我目前在用C++做算法4,我用shared_ptr管理动态数组,以此实现类似Java的引用那样的垃圾回收,而不用每次手动delete [],请问这个思路有什么不足吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
管理二维数组可以使用std::vector<shared_ptr>,一维的话直接vector就好,能用智能指针当然可以优先考虑使用
如果需要实现类似于int *arr = new int[10];这样的功能,可以这么使用智能指针和vector配合:
此时,vptr是一个智能指针,指向一个堆内存上的vector对象,这个vector对象含有10个int类型元素。
用vector就好了,遵循RAII原则一般没问题,你的目标应该是内存安全而不是GC