C++11 學習筆記
unique_ptr 可以實現如下功能:
1、為動態申請的內存提供異常安全
2、講動態申請的內存所有權傳遞給某函數
3、從某個函數返回動態申請內存的所有權
4、在容器中保存指針
5、auto_ptr 應該具有的功能
share:
從名字share就可以看出了資源可以被多個指針共享,它使用計數機制來表明資源被幾個指針共享。可以通過成員函數use_count()來查看資源的所有者個數。出了可以通過new來構造,還可以通過傳入auto_ptr, unique_ptr,weak_ptr來構造。當我們調用release()時,當前指針會釋放資源所有權,計數減一。當計數等於0時,資源會被釋放。
weak_ptr:
weak_ptr是用來解決shared_ptr相互引用時的死鎖問題,如果說兩個shared_ptr相互引用,那麽這兩個指針的引用計數永遠不可能下降為0,資源永遠不會釋放。它是對對象的一種弱引用,不會增加對象的引用計數,和shared_ptr之間可以相互轉化,shared_ptr可以直接賦值給它,它可以通過調用lock函數來獲得shared_ptr。
C++11 學習筆記
相關推薦
C++11 學習筆記
筆記 c++11 使用 ++ har sha 不可 c++ 內存 unique_ptr 可以實現如下功能: 1、為動態申請的內存提供異常安全 2、講動態申請的內存所有權傳遞給某函數 3、從某個函數返回動態申請內存的所有權 4、在容器中保存指針 5、auto_ptr 應該具有
C++11學習筆記:std::move和std::forward原始碼分析
std::move和std::forward是C++0x中新增的標準庫函式,分別用於實現移動語義和完美轉發。下面讓我們分析一下這兩個函式在gcc4.6中的具體實現。 預備知識 引用摺疊規則: X& + & => X& X&& +
C++11學習筆記-----執行緒庫std::thread
在以前,要想在C++程式中使用執行緒,需要呼叫作業系統提供的執行緒庫,比如linux下的<pthread.h>。但畢竟是底層的C函式庫,沒有什麼抽象封裝可言,僅僅透露著一種簡單,暴力美 C++11在語言級別上提供了執行緒的支援,不考慮效能的情況下可
c++11學習筆記之(iostream)緩衝區
c++ primer 5 中page 23頁中術語表中緩衝區(buffer)概念不是很清楚。故終結如下 緩衝區(buffer)一個儲存區域,用於儲存資料。IO裝置通常將輸入/輸出資料儲存在一個緩衝區中,讀寫緩衝區的動作通常與程式中的動作是無關的。我們可以顯示的重新整理輸出緩
C++11學習筆記-----互斥量以及條件變數的使用
在多執行緒環境中,當多個執行緒同時訪問共享資源時,由於作業系統CPU排程的緣故,經常會出現一個執行緒執行到一半突然切換到另一個執行緒的情況。以多個執行緒同時對一個共享變數做加法運算為例,自增的彙編指令大致如下,先將變數值存放在某個暫存器中(eax),然後對暫存器
[cpp].c++11學習筆記-std thread
std::thread用於啟動執行緒,可以用作跨平臺的執行緒庫。 它啟動執行緒的方式很靈活,可以支援C函式,類成員函式,類靜態函式等。 #include <thread> //標頭檔
C++11學習筆記——收藏網址
部落格:http://purecpp.org/https://www.cnblogs.com/qicosmos/category/466797.htmlgithub地址:https://github.com/qicosmos/cosmos標準:ISO/IEC 144882:2
【C++11學習筆記】返回型別後置語法
本次學習3個知識點: (1)auto推導型別 (2)decltype推導表示式的型別 (3)返回型別後置語法 泛型程式設計中經常遇到的寫一個加法函式: template <typename R, typename T, typename U>
【C++11學習筆記】型別判斷的type_traits學習
一、簡單的type_traits 我理解的type_traits是利用C++模板特性和static、enum特性定義編譯器常量,例如 //std::integral_constant原始碼 typelate<class T, T v> str
C++11學習筆記-----獲取非同步操作執行結果
在多執行緒環境中,不管是傳遞lambda還是傳遞函式指標,再或者是傳遞函式物件給std::thread,都很難獲取執行函式返回值。在以前,只能將結果以引用的形式作為執行緒函式引數的一部分以此儲存返回值,但是仍然存在很大侷限性,甚至不太美觀。C++11引入的std
C++11 學習筆記-型別推導
auto型別推導 auto關鍵字主要有兩種用途: - 在變數宣告時根據初始化列表表示式自動推斷該變數的型別 - 宣告函式時作為函式返回值的佔位符 注意事項: - 使用auto宣告的變數
C語言學習筆記11--位運算
位運算概念 位運算是指按二進位制位進行的運算。因為在系統軟體中,常要處理二進位制位的問題。 例如:將一個儲存單元中的各二進位制位左移或右移一位,兩個數按位相加等。 c語言提供位運算的功能,與其他高階語言(如PASCAL)相比,具有很大的優越性。 位運算子和位運算 位運算子
【C++】學習筆記草稿版系列11(運算子過載)
運算子過載和友元之間是如何發生關係的 友元過載,成員過載 單目和雙目運算子可以過載 通常情況下: 雙目運算子過載為成員的話需要一個引數,過載為友元的話需要兩個引數 const Comple
C++ set學習筆記
all pri cto 等於 中序 center type 節點 begin Stl~(multi)set set集合容器:實現了紅黑樹的平衡二叉檢索樹的數據結構,插入元素時,它會自動調整二叉樹的排列,把元素放到適當的位置,以保證每個子樹根節點鍵值大於左子樹所有節點的鍵
[C/C++] C++ Primer學習筆記
轉義 寫到 十六進制 程序 結果 否則 筆記 end 情況 下面記錄我每天看書學到的以前不太清楚的概念和用法: Day 1 endl:具有輸出換行的效果,並刷新與設備相關聯的緩沖區。 註:在調試程序過程中插入的輸出語句都應刷新輸出流,否則可能會造成程序崩潰,將會導致程序出錯
C++ Primer 學習筆記_5_變量和基本類型(續2)
key 情況 boa 類和對象 類定義 優點 splay 查看 變量定義 變量和基本類型 七、枚舉 枚舉不但定義了整數常量集,並且還把它們聚集成組。 枚舉與簡單的const常量相比孰優孰劣, 通過以下一段代
c 語言學習筆記(一)基礎
lac alert https 內容 con 標記 prime c++ prime c基礎 近期工作上有對C語言算法上的需求,所以要學C,上學的時候沒學過,只學過半年的Java(我是專升本,本科學的材料),2015年工作後也學過C,那時候的需求是能看懂就可以,也就沒深入研究
C++ Primer 學習筆記與思考_7 void和void*指針的使用方法
能夠 amp space turn begin member use mem urn (一)void的含義 void的字面意思是“無類型”,void差點兒僅僅有“凝視”和限制程序的作用,由於從來沒有人會定義一個void變量,讓我們試著來定義: void a;
C語言學習筆記 (003) - C/C++中的實參和形參(轉)
變化 避免 影響 學習筆記 ++ nbsp 過去 情況 真的 今天突然看到一道關於形參和實參的題,我居然不求甚解。藐視過去在我的腦海裏只有一個參數的概念,對於形參和實參的區別還真的不知道,作為學習了幾年C++的人來說,真的深深感覺對不起自己對不起C++老師 T。T 我
C++11 學習 間隔更新中
返回值 聲明變量 常量 指針 用法 地址 拷貝 構造函數 意見 1、*this 返回執行它的的對象的引用,this返回的是地址,這涉及C++對象模式有可能是對象的首地址,有可能是首地址加上虛表的長度, 一般是*this ,有不同意見的可以提出來討論 2、初始化列表的應用