c++智能指针

1、auto_ptr //在c++11中由unique_ptr取代 

2、unique_ptr   //auto_ptr 和 unique_ptr 都是排他性的智能指针,不能两个指针同时管理一个内存资源     

在赋值时候,使用std::move将左值临时转换为右值。好处就是让程序员清楚这样赋值造成的后果。如果自己觉得没问题就可以这样写。

 

3、shared_ptr //多了一个引用计数, 看某个内存有多少个指针在使用,如果没有指针在使用,引用计数 = 0,那么就将这个内存释放。

        3.1 使用 make_shared<T> 分配内存的效率更高。

        3.2 sp.use_count() //有多少个指针管控sp所指的资源

        3.3 sp.swap(sp1) //交换资源

 

4、weak_ptr //弱指针,协助shared_ptr

        4.1 .lock() //将弱指针转换成共享指针 

        4.2 wp = sp; //不影响引用计数。

        4.3 弱指针不支持 *  和 -> 。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值