《C++避坑神器·二十》C++智能指针简单使用

智能指针,自动释放所指向的对象。

头文件

#include <memory>

shared_ptr 允许多个指针指向同一个对象
unique_ptr 独占所指向的对象
weak_ptr 指向shared_ptr所管理的对象

作用原理:在函数作用域结束时调用析构函数自动释放资源。

shared_ptr: 共享指针,会通过计数器记录有多少个指针指向同一资源,可通过use_count()查看有多少个指针指向同一资源。
创建智能指针必须指定数据类型:shared_ptr p1;

动态创建对象:
在这里插入图片描述
注意:

stared_ptr<int> p = new int(10);  //错误写法

这是错的,接受指针参数的智能指针构造函数是 explicit 的,因此,我们不能将一个内置指针隐式的转换为一个智能指针,必须使用直接初始化形式。

shared_ptr<int> p2(new int(1024));  //正确写法

一些案例:
在这里插入图片描述
在这里插入图片描述

递增递减问题:
在这里插入图片描述

cout << r.use_count() << endl;   //3
p.get() //获取指针地址,如shared_ptr<int> p(new int(10));  p.get()获取的是指向new int(10)地址,也即获取这个指针,auto q = p.get(); 相当于auto q = new int(10);
p.reset() //p指针不在指向这个内存,资源数减1

unique_ptr指针:
unique_ptr实现独占式拥有或严格拥有概念,保证同一时间内只有一个智能指针可以指向该对象。它对于避免资源泄露(例如“以new创建对象后因为发生异常而忘记调用delete”)特别有用。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/154180.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言——求1/1-1/2+1/3-......+1/99-1/100的值

#include<stdio.h> int main() {int i 1;double sum 0;int flage 1;for(i 1;i < 100; i){sumflage*1.0/i;flage -flage; //正负号}printf("%lf\n",sum);return 0; }

论文学习——THE USTC SYSTEM FOR ADRESS-M CHALLENGE

文章目录 引言正文Abstract模型基本结构模型效果汇总 Introduction介绍跨语言任务的独特性思路启发和变化如何使用预定义好的音频特征如何使用预定义好的语言模型——语言模型中获取韵律信息结果说明 Dataset数据集Mthods方法使用设计好的特征进行AD检测使用的特征分类和训练方…

Uniapp连接iBeacon设备——实现无线定位与互动体验(实现篇)

export default { data() { return { iBeaconDevices: [], // 存储搜索到的iBeacon设备 deviceId: [], data: [], url: getApp().globalData.url, innerAudioContext: n…

x3daudio1_7.dll错误:解决方法和丢失原因及作用

x3daudio1_7.dll是Windows操作系统中的一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;主要作用是为DirectX音频提供支持。DirectX是微软推出的一套多媒体应用程序开发接口&#xff0c;广泛应用于游戏、多媒体制作等领域。x3daudio1_7.dll文件包含了许多与三维音频…

GDPU 商务英语 [初入职场](持续更新……)

&#x1f468;‍&#x1f3eb; 商务英语&#xff08;初入职场电子书PDF&#xff09;提取码&#xff1a;t9ri Unit 1 Job-seeking ✨ 单词 recruitment n. 招聘physical adj. 有形的;物质的profitability n. 盈利launch vt. 将(新产品等)投放市场budget n. 预算account for 占…

Java毕业设计心得体会

1. 开始准备选题、开题报告 大四上学期开学时开始准备论文的&#xff0c;首先是确定论文主题&#xff0c;看自己想做什么毕业设计&#xff0c;可以选取之前接触过的&#xff0c;做过的东西&#xff0c;这样快一些&#xff0c;我之前一直是学Java的&#xff0c;就打算直接用Jav…

博物馆信息展示预约小程序的效果如何

随着大环境放开&#xff0c;如博物馆等场所也开始了正常营业&#xff0c;而这些场所在市场中中的需求度很广&#xff0c;每天客流量也相对可观。 但依然发现博物馆痛点所在。 通过【雨科】平台搭建博物馆小程序展示所有内容信息&#xff0c;覆盖微信、百度、头条、抖音、支付宝…

京联易捷科技与劳埃德私募基金管理有限公司达成合作协议签署

京联易捷科技与劳埃德私募基金管理有限公司今日宣布正式签署合作协议,双方在数字化进程、资产管理与投资以及中英金融合作方面将展开全面合作。 劳埃德(中国)私募基金管理有限公司是英国劳埃德私募基金管理有限公司的全资子公司,拥有丰富的跨境投资经验和卓越的募资能力。该集…

遥感领域最热门的研究主题介绍

遥感是有效地直接从地球收集数据的最重要技术之一。由于生态信息科学的进步&#xff0c;遥感技术在日常生活的多个研究方面变得非常有价值&#xff0c;其中包括大气物理学、生态学、土壤和水污染、土壤科学、地质学、火山爆发和地球演化。以下是遥感领域的主要趋势研究主题&…

nginx服务器

nginx反向代理 nginx 反向代理的好处&#xff1a; 提高访问速度 因为nginx本身可以进行缓存&#xff0c;如果访问的同一接口&#xff0c;并且做了数据缓存&#xff0c; nginx就直接可把数据返回&#xff0c;不需要真正地访问服务端&#xff0c;从而提高访问速度。 进行负载均衡…

振南技术干货集:比萨斜塔要倒了,倾斜传感器快来!(2)

注解目录 1、倾斜传感器的那些基础干货 1.1 典型应用场景 &#xff08;危楼、边坡、古建筑都是对倾斜敏感的。&#xff09; 1.2 倾斜传感器的原理 1.2.1 滚珠式倾斜开关 1.2.2 加速度式倾斜传感器 1)直接输出倾角 2)加速度计算倾角 3)倾角精度的提高 &#xff08;如果…

【C++面向对象】13. 接口 / 抽象类*

文章目录 【 1. 抽象类 】1.1 抽象类的定义1.2 抽象类的应用条件1.3 实例 【 2. 设计策略 】 接口描述了类的行为和功能&#xff0c;而不需要完成类的特定实现。C 接口是使用 抽象类&#xff08;abstract base class&#xff0c;也称为ABC&#xff09; 来实现的。 【 1. 抽象类…

macos 配置ndk环境

选择Android Studio下默认的ndk环境 mac电脑的ndk默认路径一般是 /Users/user_name/Library/Android/sdk/ndk/version_code 其中user_name为自己电脑的用户名&#xff0c;version_code为自己ndk安装的版本号&#xff0c;比如我这里电脑的ndk路径就是 /Users/zhangsan/Libra…

智慧环保:科技驱动下的环境保护新篇章

智慧环保&#xff1a;科技驱动下的环境保护新篇章 环境保护已经成为当今社会的重要议题&#xff0c;而科技的飞速发展为我们开启了智慧环保的新篇章。在这篇文章中&#xff0c;我们将介绍智慧环保所带来的机会和创新&#xff0c;以及科技在环境保护中的重要作用。 智慧环保的理…

Unity中Shader图形流水线中的纹理

文章目录 前言一、图形流水线中的纹理1、我们的纹理一般用于&#xff1a;2、纹理的获取方式&#xff1a; 二、纹理的分类1、颜色纹理2、几何纹理 三、纹理管线四、纹理的作用1、纹理可以 替换 漫反射模型中的 漫反射系数Kd2、纹理还有的作用 前言 Unity中Shader图形流水线中的…

【入门篇】1.3 redis客户端之 jedis 高级使用示例

文章目录 0.前言1. 发布和订阅消息2. 事务操作3. 管道操作4. jedis 支持哨兵模式5. jedis 支持集群模式5. 参考链接 0.前言 Jedis是Redis的Java客户端&#xff0c;它支持所有的Redis原生命令&#xff0c;使用方便&#xff0c;且可以与Java项目无缝集成。 该库的最新版本支持Re…

国内领先的五大API接口供应商

API&#xff08;Application Programming Interface&#xff09;接口&#xff0c;现在很多应用系统中常用的开放接口&#xff0c;对接相应的系统、软件功能&#xff0c;简化专业化的程序开发。作者用过的国内比较稳定的API接口供应商有如下几家&#xff0c;大家可以参考选择&am…

Android设计模式--状态模式

真知即所以为行&#xff0c;不行不足谓之知 一&#xff0c;定义 当一个对象的内在状态改变时&#xff0c;允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 这么说可能很难理解&#xff0c;通俗来讲就是当一个对象它有多种状态的时候&#xff0c;把每一种状态的行为…

C++ 之字符串、字符数组与字符指针(*、**)

C 之字符串、字符数组与字符指针(*、**) 最近频繁使用字符串指针&#xff0c;有时候想取值或者复制&#xff0c;常用到问题&#xff0c;在此总结一下字符串的处理、指针的使用长期更新版~ 1. char 使用相关 1.1 内存使用 首先介绍一下C语言中的数据类型&#xff1a; 下图给…

关于 内部类 你懂多少?

目录 1. 什么是内部类&#xff1f; 2. 内部类的分类 3. 内部类 3.1 实例内部类 3.2 静态内部类 4. 局部内部类 5. 匿名内部类 6.对象的打印 “不积跬步无以至千里&#xff0c;不积小流无以成江海。”每天坚持学习&#xff0c;哪怕是一点点&#xff01;&#xff01;&a…
最新文章