Boost库简单运用——shared_ptr

本文介绍了Boost库中的智能指针shared_ptr,它解决了C++中内存管理的问题,特别是内存泄漏和非法内存访问。shared_ptr支持引用计数,允许多个对象共享同一块动态内存,并在所有对象不再使用时自动释放。文章详细讲解了shared_ptr的初始化、获取存储指针、引用计数、唯一性判断以及重新设置动态内存等操作。
摘要由CSDN通过智能技术生成

Boost库简单运用——shared_ptr

概述

​ 在C++项目中,内存管理的问题一直是个大问题,也是个很常见的问题。项目交由经验不足的程序员来编写维护,常出现内存泄漏、访问非法内存之类的问题,资历较老的程序员也不可避免会出错。所幸STL与Boost都为我们提供了管理动态内存的工具,我们只要如寻常指针一般使用即可,无需担心以往会出现的内存管理上的问题了。这里就先介绍一个shared_ptr,就功能来看,在大多数场景下都可以使用。

功能介绍

​ shared_ptr不同于auto_ptr,auto_ptr虽然也能够很好地管理动态内存,但其不能分享管理权这点也是比较麻烦的,auto_ptr赋值之后,等号右侧的对象对于动态内存的管理权也就移交给左侧对象了,然而也有不少情况需要另一个对象来管理动态内存。此时就需要使用shared_ptr了,shared_ptr新增引用计数的处理,赋值之后并不会移交管理权,而是将引用计数加1,之后当引用计数为0时,所管理内存才会被释放。

​ 就使用方式上来看,shared_ptr行为与寻常指针一致,所以平时我们在编写C++代码时,可以用shared_ptr去替代普通指针。

初始化

​ 初始化比较常用的方法有两种,第一种可以直接调用其构造函数,具体代码如下:

boost::share
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值