【Boost】系列03:内存管理之shared_ptr智能指针
生活随笔
收集整理的這篇文章主要介紹了
【Boost】系列03:内存管理之shared_ptr智能指针
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最有價值的!最有用的引用計數(shù)型智能指針,可以被拷貝和賦值,可以作為STL容器的元素;
1,基本用法:
#include <boost/smart_ptr.hpp> #include <assert.h> using namespace boost; int main() {shared_ptr<int> sp(new int(10));assert(sp.unique());shared_ptr<int> sp2 = sp;assert(sp == sp2 && sp.use_count() == 2);*sp2 = 100;assert(*sp == 100);sp.reset();assert(!sp);return 0; }2,make_shared用法:
#include <boost/smart_ptr.hpp> #include <vector> #include <boost/make_shared.hpp> using namespace std; using namespace boost;int main() {typedef vector<shared_ptr<int> > vs;vs v(10);int i = 0;for (vs::iterator pos = v.begin(); pos != v.end(); ++pos){(*pos) = make_shared<int>(++i);cout<<*(*pos)<<", ";}cout<<endl;cout<<v[9].use_count()<<endl;cout<<"v[9]="<<*v[9]<<endl; shared_ptr<int> p = v[9];cout<<v[9].use_count()<<endl;*p = 100;cout<<*v[9]<<endl;return 0; }輸出:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1
v[9]=10
2
100
總結(jié)
以上是生活随笔為你收集整理的【Boost】系列03:内存管理之shared_ptr智能指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在mac上安装Go语言初体验
- 下一篇: 索引规范