日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++(STL):04---智能指针之weak_ptr

發布時間:2023/12/13 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++(STL):04---智能指针之weak_ptr 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概念

  • weak_ptr是一種不控制所指向對象生存期的智能指針,它指向一個shared_ptr管理的對象

  • 擁有“弱”共享的特點

最重要的特點

  • 一個對象被多個shared_ptr類所指向時,就會擁有多個引用計數

  • 但是當weak_ptr指向一個shared_ptr類所指向的對象時,該對象的引用計數不會增加

  • 因此,當最后一個對象的最后一個shared_ptr類被釋放時,該對象會被釋放。即使此時仍有weak_ptr指向該對象,該對象的內存仍然會被釋放

二、weak_ptr類的基本使用

  • 我們需要用一個shared_ptr類來初始化weak_ptr類

也與wp無關 auto p=make_shared<int>(42); //初始化一個shared_ptr對象weak_ptr<int> wp(p); //用p初始化wp,wp弱共享p//wp只是指向p所指的對象,p的引用計數沒有改變,并且p所指對象的釋放

四、lock函數的使用

  • 用來檢測weak_ptr所指的對象是否仍然存在,如果存在就繼續訪問,不存在則做相應的處理

  • 返回值:

    • 如果weak_ptr所指的shared_pre引用計數為0,返回一個空的shared_ptr

    • 否則,返回一個shared_ptr對象

auto p=make_shared<int>(42);weak_ptr<int> wp(p);if(shared_ptr<int> np=wp.lock()){...//如果np不為空則執行if}else{ }

總結

以上是生活随笔為你收集整理的C++(STL):04---智能指针之weak_ptr的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。