- 智能指针是一种数据结构, 其行为类似于指针, 同时提供诸如内存管理或绑定检查之类的附加功能。
- 智能指针跟踪其指向的内存, 还用于管理其他资源, 例如Fils句柄和网络连接。
- 智能指针最初是在C ++语言中使用的。
- 引用也是一种指针, 但是除了引用数据之外, 它没有其他功能。引用由” &” 运算符表示。
- 智能指针提供了参考所提供的功能以外的其他功能。智能指针提供的最常见功能是” 引用计数智能指针类型” 。通过跟踪所有者, 此功能使我们能够拥有多个数据所有者, 如果没有所有者, 那么它将清除数据。
- 引用是仅借用数据的指针, 而智能指针是拥有它们指向的数据的指针。
文章图片
- Box < T> :Box < T> 是一个智能指针, 它指向在类型T的堆上分配的数据, 其中” T” 是数据的类型。它用于将数据存储在堆而不是堆栈上。
- Deref < T> :Deref < T> 是一个智能指针, 用于自定义取消引用运算符(*)的行为。
- Drop < T> :Drop < T> 是一个智能指针, 用于在变量超出范围时从堆内存中释放空间。
- Rc < T> :Rc < T> 代表参考计数指针。它是一个智能指针, 用于记录对堆中存储的值的引用数量。
- RefCell < T> :RefCell < T> 是一个智能指针, 即使数据是不可变的, 它也允许你借用可变数据。此过程称为内部可变性。
推荐阅读
- SAS和R之间的区别详细对比
- Rust特质trait用法介绍
- 回收站删除的文件怎样恢复,图文详细说明回收站删除的文件怎样恢复
- 鼠标滚轮不能用,图文详细说明电脑鼠标滚轮不能用怎样办
- 无线网络设置,图文详细说明怎样设置无线网络连接
- 已停止此网站显示有安全证书出错的内容,图文详细说明已停止此网站显示有安全证书出错的内容怎样处理
- 0x000000EA,图文详细说明怎样处理0x000000EA
- 是否停止运行此脚本,图文详细说明怎样处理是否停止运行此脚本
- 电脑蓝屏代码0x000024,图文详细说明怎样处理电脑蓝屏代码0x000024