37.智能指针

重点手撕share ptr

静态的也不行

三个对象共享这个引用计数,这就不对了,指向不同资源,静态属于管理这个类型的所有对象,而我们只是想要管理某个对象的引用计数。用动态开辟方式

unique ptr特化了一个这个版本,【】没问题,但是第一个unique模版参数是在哪穿的?

并不是在构造传,可以看到构造也有,但是不是一个函数模版,不能直接推

share是构造函数传,unique是在类声明传

unnique在下层用这个类型实例化出一个仿函数对象,share ptr用啥都好用(lamda 仿函数 函数指针,,,),但是unique仿函数好用,lamda不好用 ,在函数参数传个lamda没毛病,模版参数传lamda,就有困扰,拿不到类名。之前share是通过实参传给形参,自动推导lamda类型,unique必须传类型,lamda不行,这么办:

这个关键字可以推导类型。lamda底层还有一些限制还是不行,,构造地方也要显示穿,因为lamda类型不支持默认构造,所以生成不出来,所以传一个对象过去,用这个对象拷贝构造,unique定制删除器就用仿函数,shareptr 定制删除器都可以相对建议lamda。

unique 【】就这样

其他的这样。

share都行。

右边share ptr引用计数到9,就释放,左下减到0不释放,我怎么知道这个引用计数有没有人指向所以再加一层引用计数,weak ptr不参与资源管理但是参与引用计数管理

相关推荐
旖旎夜光7 分钟前
LeetCode 974:和可被 K 整除的子数组(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
小小龙学IT20 分钟前
libuv 开源异步 I/O 事件循环库深度解析:Node.js 的心脏,C++ 高性能网络程序的引擎
c++·开源·node.js
彷徨而立28 分钟前
【C/C++】多线程读写普通 int 变量的一些问题(二)
c语言·c++
一只旭宝32 分钟前
五种线程池设计
c++·笔记
某林21239 分钟前
机器人收不住、转不动?执行器死区的原理与三层补偿设计
前端·网络·c++·架构·机器人
程与留15 小时前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt
程与留16 小时前
14_Qt 样式表(QSS)入门(语法、选择器、美化实战)
c++·qt
欧特克_Glodon1 天前
OpenCV计算机视觉开发入门与实践<二十七>:图像分割概述
c++·人工智能·opencv·计算机视觉
蒸蒸yyyyzwd1 天前
cpp 选手秋招学习笔记 day21
c++·面试·八股
「QT(C++)开发工程师」2 天前
C++ auto 用法详解
开发语言·c++