標準庫頭文件:memory

1.常用變量

unique_ptr    //模板類,擁有獨有對象所有權語義的智能指針
shared_ptr    //模板類,擁有共享對象所有權語義的智能指針,不會因爲weak_ptr也指向同一個對象而引用計數加1
weak_ptr    //模板類,由shared_ptr所管理的對象的弱引用,避免循環引用
auto_ptr    //模板類,C++17中移除

2.常用操作

std::make_unique<int>(5);//將5變成獨有對象
unique_ptr::get();//返回指向被管理對象的指針,如果無被管理對象,則爲nullptr
unique_ptr::release();//釋放被管理對象的所有權
unique_ptr::swap(unique_ptr& other);//交換兩個被管理對象
std::make_shared<int>(5);//將5變成共享對象
shared_ptr::get();//返回指向被管理對象的指針,如果無被管理對象,則爲nullptr
shared_ptr::swap(unique_ptr& other);//交換兩個被管理對象
shared_ptr::use_count();//返回共享對象的引用計數
weak_ptr::use_count();//返回管理該對象的shared_ptr對象數量,將shared_ptr對象賦給weak_ptr對象,引用計數加一
weak_ptr::expired();//檢查被引用的對象是否已刪除 
weak_ptr::lock();//創建被引用的對象的shared_ptr 
auto_ptr::get();//返回指向被管理對象的指針,如果無被管理對象,則爲nullptr
auto_ptr::release();//釋放被管理對象的所有權

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章