当前位置: 首页 > 编程日记 > 正文

智能指针unique_ptr

unique_ptr的一些操作:

int main()
{unique_ptr<int> uptr(new int(10));//unique_ptr<int> uptr2(uptr);//报错//unique_ptr<int> uptr3 = uptr;//报错
unique_ptr<int> uptr2 = std::move(uptr);//转移所有权//cout << *uptr << endl;//错误,uptr si NULLreturn 0;
}

unique_ptr使用场景:

1.为动态申请的资源提供异常安全保证

传统情况,可能会因为异常而没有走到delete部分,如下:

void func()
{int *p = new int(10);//maybe throw exceptionif (NULL != p){delete p;p = NULL;}
}

使用unique_ptr,只要unique_ptr指针创建成功,析构函数就一定会被调用,如下:

void func()
{unique_ptr<int> uptr(new int(10));//maybe throw exception
}

2.返回函数内动态申请资源的所有权

unique_ptr<int> func(int value)
{unique_ptr<int> uptr(new int(value));return uptr;
}int main()
{unique_ptr<int> uptr2 = func(10);cout << *uptr2 << endl;return 0;
}

3.在容器内保存指针

int main()
{vector<unique_ptr<int>> vec;unique_ptr<int> uptr(new int(10));vec.push_back(std::move(uptr));return 0;
}

4.管理动态数组

int main()
{unique_ptr<int[]> uptr(new int[5]{1, 2, 3, 4, 5});uptr[0] = 100;cout << uptr[0] << endl;return 0;
}

转载于:https://www.cnblogs.com/chen-cai/p/9566593.html

相关文章:

java 设计一个geometricobject类,geometricobject类

(2) Circle 类和 Rectangle 类是 GeometricObject 类的子类,其中应实现 父类的抽象方法。 (3) 程序主方法中创建两个几何对象,一个圆和一个矩形,并用 ......创建一个元素是 GeometricObject 类型的数组: ?GeometricObject[] geo new GeometricObject[10]; 8 使用 GeometricOb…

linux 源码安装浏览器,vps+linux+安装浏览器

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器&#xff0c;帮助用户打造可靠、安全、灵活、高效的应用环境&#xff0c;确保服务持久稳定运行&#xff0c;提升运维效率三年低至5折&#xff0c;多种配置可选了解详情什么是弹性…

计算机基础及应用教案,计算机应用基础教案:数制的概念及转换(中职教育)

计算机应用基础教案&#xff1a;数制的概念及转换(中职教育) (6页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.9 积分课题&#xff1a;数制的概念及转换教学目标&#xff1a;1、了解和学握计算机…

博客园第一天,开放封闭原则

&#xff08;以下内容来自网络&#xff0c;只为加深理解&#xff09; 开放封闭原则 软件实体软件实体应该是可扩展&#xff0c;而不可修改的。 开放&#xff1a;扩展 封闭&#xff1a;修改 对扩展开放意味着在又新的需求或变化时&#xff0c;可以对代码进行扩展&#xff0c;以适…

centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)

1 PHP简介 PHP(PHP: Hypertext Preprocessor的缩写&#xff0c;中文名&#xff1a;“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&#xff0c;入门门槛较低&#xff0c;易于学习&#xff0c;使用广泛&#xff0c;主要适用于Web开发领域。…

Oracle中分页查询语句

Oracle分页查询语句使我们最常用的语句之一&#xff0c;下面就为您介绍的Oracle分页查询语句的用法&#xff0c;如果您对此方面感兴趣的话&#xff0c;不妨一看。 Oracle分页查询语句基本上可以按照本文给出的格式来进行套用。Oracle分分页查询格式&#xff1a; SELECT * FROM …

大一c语言大作业课题大全,昆明理工大学大一C语言大作业题目.doc

昆明理工大学大一C语言大作业题目综合性实践排序求平均值(包括将数拆散求最大最小值)。函数ReadDat()随机产生100个存放到数组aa中00个jsSort()函数的功能是&#xff1a;进行降序排列。最后调用函数WriteDat()函数函数ReadDat()00个四位数存入数组a中&#xff0c;函数jsValue()…

1 项目里面如何打印log日志

1 首先写一个logging.py文件 import logging from conf import setting #配置文件&#xff0c;里面有日志存放路径def mylog():logger logging.getLogger()# 吸星大法# 先创造一个格式formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s)#…

计算机应用主要设计到哪些方面,大学计算机应用基础教案设计.doc

大学计算机应用基础教案教 师&#xff1a; 腾莉单 位&#xff1a; 数学计算机学院2009 ~ 2010学年第一讲 计算机基础知识概述【教学目的】了解计算机概念、特点、发展历程、类型应用领域等基本知识计算机基本概念和分类计算机一、计算机的概念计算机(computer)是一种能自动、高…

php点击复制按钮到我的粘贴板,JS 实现点击按钮复制内容到粘贴板 clipboard

具体实现如下:点击按钮复制内容到粘贴板body {text-align: center;}#p1 {line-height: 150px;font-size: 40px;}#source {font-size: 18px;}.wrapper {margin-top: 50px;}.btn {width: 300px;height: 120px;background-color: #4da2fd;color: #fff;font-size: 20px;text-decora…

透明代理Transparent Proxy

透明代理Transparent Proxy透明代理Transparent Proxy类似于普通代理&#xff0c;它可以使得处于局域网的主机直接访问外网。但不同之处&#xff0c;它不需要客户端进行任何设置。这样&#xff0c;客户端误以为是直接连接的外网主机&#xff0c;所以称为透明代理。由于客户端没…

C语言case次数有限制吗,用switch...case语句统计数字、空格和其他字符出现的次数...

//用switch...case语句统计数字、空格和其他字符出现的次数//转自K&R#include int main(void){int c, i, nwhite, nother, ndigit[10];nwhite nother 0;for (i 0; i < 10; i)ndigit[i] 0;while ((c getchar()) ! EOF){switch (c){case 0: case 1: case 2: case 3: …

C++——简单数据类型及布尔类型

一. 简单数据类型 数据类型描述了对象在内存存储区中占据的空间大小&#xff0c;描述了对象能够表示的数据范围 和类型。C语言中常用的数据类型有整型、实型、字符型&#xff08;这3种类型也被称之为简单数 据类型&#xff09;、数组类型、布尔类型、枚举类型、结构体类型、公用…

document.onclick在ios上不触发的解决方法与touchstart点击穿透处理

document.onclick function (e) {var e e ? e : window.event;var tar e.srcElement || e.target;if (tar.id ! "searchData") {pagesZone.style.display "none";} } 以上代码在电脑浏览器和安卓上都能触发alert事件&#xff0c;但是在iOS上却完全没有…

php广告插入代码,[教程]如何在phpcms中添加html代码广告

像上次说的那样&#xff0c;phpcms里直接生成的js文件是不能包含html代码的。本文介绍的还是利用上次所用的ads循环和phpcms自带的文本广告&#xff0c;新建一个支持html代码的模板&#xff0c;从而达到支持html广告的效果。这样设置以后&#xff0c;phpcms可以支持大部分的广告…

清华计算机学院新成立,清华AI更进一步:清华大学成立人工智能国际治理研究院...

清华AI更进一步&#xff1a;清华大学成立人工智能国际治理研究院2020-06-28 15:19:394点赞4收藏7评论集微网消息(文/小如)6月24日&#xff0c;清华大学人工智能国际治理研究院成立会议举行。图片来源&#xff1a;清华新闻网在成立会议暨第一次管委会会议上&#xff0c;清华大学…

c语言基础知识pdf下载,C语言主基础知识.pdf

C语言主基础知识泰山学院CSDN 俱乐部C 语言主要基础内容1、预处理命令 预处理的概念&#xff1a;在编译之前进行的处理。预处理命令以符号“#”开头。2 、关于#include 在编译之前将 stdio.h 文件包含入源文件中(include&#xff1a;包含) 即将stdio.h 文件中的内容复制到代码中…

ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)

前言&#xff1a; 前面两篇都是大体介绍流程&#xff0c;有一些配置细节&#xff0c;没有细说&#xff0c;这里用一篇补上。 1、Excel配置项 起始行索引、列头跨行数&#xff1a; 对于自定义的Excel导入模板&#xff08;有时候模板是由客户提供&#xff0c;模板的规则很乱&…

php agi api,PHP agi 编写测试

部分代码来源于网络&#xff0c;经过调试后写在此&#xff1a;/etc/asterisk/phpagi.conf 配置内容&#xff1a;[phpagi]debugtrue //是否打开debug&#xff0c;一般生产环境关闭error_handlertruetempdir/var/spool/asterisk/tmp/[asmanager]server10.1.0.7port5038usernamea…

查询数据库所有表、字段、触发器等

SQL SERVER查看所有表名&#xff1a;select name from sysobjects where typeU查询表的所有字段名&#xff1a;Select name from syscolumns Where IDOBJECT_ID(表名)select * from information_schema.tablesselect * from information_schema.viewsselect * from information…

浅谈学前教育与计算机,浅谈学前教育专业计算机教学改革与实践.doc

精品文档&#xff0c;助力人生&#xff0c;欢迎关注小编&#xff01;浅谈学前教育专业计算机教学改革与实践【摘要】学前教育专业的计算机教学如果按照普通大专院校的计算机文化基础课教学模式&#xff0c;基于学生的专业及学习特点&#xff0c;培养的学生对于计算机知识的认识…

c语言指针要点,C语言指针的重点有哪些?

指针说难也不难&#xff0c;说不难吧&#xff0c;有点难理解把握几点&#xff0c;就不是很难了1、指针是变量&#xff0c;可以当成一般的变量来操作2、指针可以做减法&#xff0c;不可以做加乘除&#xff0c;减法的意思是求两个内存空间之间隔着几个字节。加乘除没有意义3、内存…

python学习随笔(七)_函数

函数 #作用:封装和复用 数学定义&#xff1a;yf(x) &#xff0c;y是x的函数&#xff0c;x是自变量。yf(x0, x1, ..., xn) Python函数 由若干语句组成的语句块、函数名称、参数列表构成&#xff0c;它是组织代码的最小单元 完成一定的功能 函数的作用…

计算机控制里ddc什么缩略语,空调自动化术语和缩略语.doc

空调自动化术语和缩略语1.6 空调自动化术语和缩略语1.6.1 术语解释Application—Specific Controller,专用控制器&#xff1a;专用控制器是意图连接一个或几个设备以便提供某种特殊功能的数字控制器。专用控制器通常有固定的控制算法和有限的参数调整。Automatic Communication…

Linux中重定向--转载

转:http://blog.csdn.net/songyang516/article/details/6758256 1重定向 1.1 重定向符号> 输出重定向到一个文件或设备 覆盖原来的文件>! 输出重定向到一个文件或设备 强制覆盖原来的文件>> 输出重定向到一个文件或设…

matlab 2010无法运行程序,matalb r2010a安装后打开出现一系列警告,无法运行,哪位大神帮...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Matlab R2010a安装完成后的错误&#xff1a;Warning: D:\Program Files\MATLAB\R2010b\toolbox\local\pathdef.m not found.Toolbox Path Cache is not being used. Type help toolbox_path_cache for more info Undefined functio…

小米4c怎么添加语言怎么设置在哪里,小米4c路由器设置教程

摘要 腾兴网为您分享:番茄小说&#xff0c;唱吧app&#xff0c;酷狗&#xff0c;腾讯会议&#xff0c;唯品会等知识经验教程&#xff0c;欢迎大家关注腾兴网。小米4c路由器该怎么设置&#xff0c;不少小伙伴们不清楚设置方法是什么&#xff0c;想要知道该怎么设置的&#xff0c…

用PHP计算个税,PHP计算个人所得税示例【不使用速算扣除数】

本文实例讲述了PHP计算个人所得税。分享给大家供大家参考&#xff0c;具体如下&#xff1a;不使用速算扣除数计算个人所得税&#xff0c;PHP自定义函数实现个人所得税计算。使用速算扣除数计算个人所得税过于简单&#xff0c;略过不提。PHP和JS有相同之处&#xff0c;知道PHP计…

mono+jexus 部署之CompilationException

使用 HelpPage 组件 CompilationException 好不容易在ubuntu上搭建了monojexus&#xff0c;欣喜若狂的部署上发布的网站&#xff0c;急忙打开&#xff0c;成功运行。 但是别高兴的太早&#xff0c;当我打开WebApi帮助页时出现了CompilationException。 解决办法 修改 WebConfig…

MAC 重置MySQL root 密码

MAC 重置MySQL root 密码 重置MySQL root 密码&#xff1a;当忘记密码&#xff0c;或者想要强行重置 MySQL 密码的时候&#xff0c;可以像下面这样&#xff1a; 1.停止 MySQL 服务 12sudo /usr/local/mysql/support-files/mysql.server stop//当停止失败 见下边 如何用mac 活动…