当前位置: 首页 > news >正文

博客做单页网站/新闻头条最新消息今天

博客做单页网站,新闻头条最新消息今天,网站页面打开速度慢,wordpress实现banner图轮播从C智能指针之auto_ptr一文中得知:在使用auto_ptr时,可能会不经意的将多个auto_ptr指向同一块内存,造成auto_ptr销毁释放时多次释放同一块内存。为了解决该问题,本文引出了unique_ptr。 顾名思义,unique是唯一的意思。…

从C++智能指针之auto_ptr一文中得知:在使用auto_ptr时,可能会不经意的将多个auto_ptr指向同一块内存,造成auto_ptr销毁释放时多次释放同一块内存。为了解决该问题,本文引出了unique_ptr。

顾名思义,unique是唯一的意思。说明它跟auto_ptr有点类似,就是同时只能有一个智能指针对象指向某块内存,与auto_ptr不同,unique_ptr还有些其他特性:

  1. unique_ptr无法进行复制构造与赋值操作,会编译报错
auto_ptr<int> ap(new int(88 );
auto_ptr<int> one (ap) ; // ok
auto_ptr<int> two = one; //okunique_ptr<int> ap(new int(88 );
unique_ptr<int> one (ap) ; // 编译会出错
unique_ptr<int> two = one; // 编译会出错
  1. unique_ptr可以进行移动构造和移动赋值操作

代码解释:这里是显式的所有权转移,即:将up所指的内存转给uPtr2,而up不再拥有该内存。

unique_ptr<int> up(new int(88 );
unique_ptr<int> uPtr2 = std:move(up);  //移动构造
  1. unique_ptr可以作为返回值,用于从某个函数中返回动态申请内存的所有权
unique_ptr<int> GetVal( )
{unique_ptr<int> up(new int(88 );return up;
}
unique_ptr<int> uPtr = GetVal();   //ok

代码解释:返回unique_ptr类型的变量,本质上是移动拷贝,等价于上面讲解的2中的代码。

  1. unique_ptr可做为容器元素,但是必须通过移动语义实现
vector<unique_ptr<int> > vec; //定义unique_ptr类型的vectorunique_ptr<int> sp(new int(88) ); //定义unique_ptr类型的变量sp
vec.push_back(std::move(sp)); //使用移动语义,将sp插入到vec中cout<<*sp<<endl; //error,因为sp添加到容器过程中,sp失效,sp自身报废了。vec.push_back(sp); // error,不使用移动语义添加编译会失败

总结:
从上面的例子可以看出:unique_ptr和auto_ptr真的非常类似。其实你可以这样简单的理解,auto_ptr是可以说你随便赋值,但赋值完了之后原来的对象就不知不觉的报废,搞得你莫名其妙;而unique就干脆不让你可以随便去复制、赋值,如果实在想传个值,必须显式的说明内存转移std:move一下。然后这样传值完了之后,之前的对象也同样报废了,只不过整个move你让明显的知道这样操作后会导致之前的unique_ptr对象失效。


unique_ptr独占所有权(对比auto_ptr的优点) 在这里插入图片描述

http://www.lbrq.cn/news/1397197.html

相关文章:

  • 南充网站建设费用/河南公司网站建设
  • 建设工程有限公司起名/seo排名的方法
  • 模板网站如何做seo/免费网站怎么注册
  • 东营做网站seo/发帖子的网站
  • 泰安做网站哪家好/北京厦门网站优化
  • 百度字体如何转换wordpress/seo搜索优化邵阳
  • 做外包任务网站/日照seo公司
  • 那个网站做车险分期/网站推广app
  • nas的wordpress无法编辑/360网站seo手机优化软件
  • 建设跳转公积金网站/优化网站标题名词解释
  • 网站开发的人/国内免费b2b网站大全
  • 贵州省建设厅官网站首页/宣传推广方式有哪些
  • windows 安装 wordpress/甘肃新站优化
  • 华为软件开发工程师待遇/整站优化seo公司哪家好
  • 建筑工程网 装修/网络优化的意义
  • 深圳网站制作建设/企业网站推广方法
  • 用xmind做网站架构/青岛seo排名扣费
  • 湘潭网站建设 w磐石网络/磁力搜索器
  • 建设银行 商户网站打不开/手机百度网盘登录入口
  • bc网站怎么做支付/百度搜索风云榜
  • 网站图片翻页怎么做/网络文章发布平台
  • 域名过期的网站怎么看/北京seo培训
  • wordpress单位内网做网站/营销活动有哪些
  • 越烽建设集团有限公司网站/深圳网站建设 手机网站建设
  • 网站设计)/手游推广代理平台有哪些
  • 阿里云域名注册及备案/搜索引擎优化策略有哪些
  • 一汽大众网站谁做的/百度推广优化师培训
  • 网站编写软件/优化大师怎么删除学生
  • 北京企迪网站建设公司/郑州搜索引擎优化
  • 北京网站建设工作室/深圳网站建设
  • 从防抖节流到链表树:编程世界中的抽象优化艺术
  • 直流无刷电机旋转原理
  • RabbitMQ 基础
  • Arthas 全面使用指南:离线安装 + Docker/K8s 集成 + 集中管理
  • JVM之Java内存区域与内存溢出异常
  • Next.js 中的 SEO:搜索引擎优化最佳实践