C++ | shared_ptr

shared_ptr允许多个指针指向同一个对象,shared_ptr的引用计数为指向该对象shared_ptr的数量,当引用计数为0时自动释放该对象

智能指针是对指针的封装。

智能指针是模版。

使用智能指针需要包含头文件

#include <memory>
shared_ptr<string> p1;		// shared_ptr,可以指向string
shared_ptr<vector<int>>p2;	// shared_ptr,可以指向int的vector
shared_ptr<int> p3 (new int(100));

shared_ptr的一些操作

shared_ptr<T> p

空只能指针,可以指向类型为T的对象

p

if(p),若p指向一个对象,表达式为true

*p

解引用

p->attr

等价于(*p).attr

p->get()

返回p中保存的指针

swap(p,q)

交换p和q中的指针

p.swap(q)

交换p和q中的指针

make_shared<T>(args)

返回一个shared_ptr对象,用args初始化

shared_ptr<T>p(q)

p是q的拷贝

p=q

p的引用计数会递减,q的引用计数递增

p.unique()

若p.use_count()为1,返回true,否则false

p.use_count()

返回引用计数

shared_ptr<int> p1 (new int(100));
cout << "p1.use_count(): " << p1.use_count() << endl;
cout << "*p1: " << *p1 << endl;
shared_ptr<int> p2 = p1;
cout << "p2.use_count(): " << p2.use_count() << endl;
cout << "p1.use_count(): " << p1.use_count() << endl;
cout << "*p2: " << *p2 << endl;
shared_ptr<int> p3 = make_shared<int>(200);
cout << "p3.use_count(): " << p3.use_count() << endl;
cout << "*p3: " << *p3 << endl;
/*
输出为
p1.use_count(): 1
*p1: 100
p2.use_count(): 2
p1.use_count(): 2
*p2: 100
p3.use_count(): 1
*p3: 200
*/
#c++##智能指针#
全部评论

相关推荐

10-19 10:28
已编辑
西南石油大学 后端工程师
团孝子已上线feeling:面了很多家公司,能感受到目前只有小公司+外包喜欢问八股。大厂虽然也问八股,但是是从实习、项目中进行提问,并且大厂会问很深,面试官也会对你的回答进行思考➕追问,所以准备大厂面试前一定要备好相关资料。对于算法,我做的是codetop前100+力扣hot100+力扣高频150,面试中实感hot100就足够,基本上只要是hot100就秒答。对于项目和八股,我做的也是烂大街的星球项目,八股则是看小林和问ai,自己也写了很多技术博客和画了很多思维导图,并且自己也尝试用嘴巴说出来,不只停留于纸面。运气也很重要,必须要让面试官/HR看到简历才行,所以建议投递时间是下午两点。tl:第一岗位9.9&nbsp;投递9.10&nbsp;一面(一面评价:最近见过最强的大三,结束五分钟后约二面,都晚上九点了不下班吗)9.11&nbsp;二面(三道算法a出两道,反问评价:经验不够等横向,我实习生要啥经验)9.21挂(实习时间过短+其他原因,想要一年实习的,为什么不招个正职)第二岗位10.10投递10.11约面(主管打电话,说看到我之前投递记录了想要我挂qa职进去干后端,同意)10.14&nbsp;一面(无八股,主动说确实很强,意愿很强)10.16&nbsp;oc其余,友邦,东软,东华,惠择,用友oc已拒京东测开一面挂(投后端被测开捞)腾讯测试已拒(投后端被测开捞)ps:表扬惠择的主管面,没怎么问技术(可能是一面面试官沟通过了),全程一起讲大道理,解答了心中很多疑惑,也告诉我以面试官角度来看怎么选候选人,如果可以下次一定选惠择
HeaoDng:美团好像可以触发一面通
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务