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

工程建设网站互联网行业是干什么的

工程建设网站,互联网行业是干什么的,潍坊做网站的公司,河南省住房和城乡建设网站​​​​​​​ 目录 1--动态内存管理 2--shared_ptr类 2-1--make_shared 函数 2-2--引用计数 2-3--get 3--new和delete 4--shared_ptr和new结合使用 5--unique_ptr 6--weak_ptr 1--动态内存管理 new#xff1a;在动态内存中为对象分配空间并返回一个指向该对象的指…​​​​​​​ 目录 1--动态内存管理 2--shared_ptr类 2-1--make_shared 函数 2-2--引用计数 2-3--get 3--new和delete 4--shared_ptr和new结合使用 5--unique_ptr 6--weak_ptr 1--动态内存管理 new在动态内存中为对象分配空间并返回一个指向该对象的指针 delete接受一个动态对象的指针销毁该对象并释放与之关联的内存 C11新标准两类智能指针负责自动释放所指向的对象         ① shared_ptr允许多个指针指向同一个对象         ② unique_ptr指针独占所指向的对象         ③ weak_ptr指向 shared_ptr 所管理的对象是一种若引用不会递增引用计数 2--shared_ptr类 2-1--make_shared 函数 make_shared 函数在动态内存中分配一个对象并进行初始化返回指向该此对象的shared_ptr         使用 make_shared 必须显式指定对象的类型 std::shared_ptrint p std::make_sharedint(42); 2-2--引用计数 每个 shared_ptr 都有一个关联的计数器其称为引用计数当拷贝一个 shared_ptr 时计数器会递增当用一个 shared_ptr 初始化另一个 shared_ptr或者将其作为参数进行传递以及作为函数的返回值时都会使关联的计数器递增当给 shared_ptr 赋予一个新值或是 shared_ptr 被销毁即离开局部作用域时计数器会递减         当一个 shared_ptr 的计数器为 0 时会自动释放管理的对象 2-3--get get 函数返回一个内置指针指向智能指针管理的对象get 用来将指针的访问权限传递给代码只有确定代码不会 delete 指针的情况下才能使用 get。 std::shared_ptrint p(new int(42)); int *q p.get(); {std::shared_ptrint(q); }// 程序块结束q被销毁 int foo *p; // 未定义p指向的内存已经被释放 3--new和delete new 无法为其分配的对象命名只返回一个指向该对象的指针         默认情况下动态分配的对象是默认初始化的没有默认构造函数的内置类型将是未定义的         对动态分配的对象进行值初始化只需在类型名后跟一对空括号即可 int *pi1 new int; // 默认初始化*pi1的值未被定义 int *pi2 new int(); // 值初始化*pi2的值为0 delete 销毁给定指针所指向的对象并释放对应的内存         当 delete 一个指针后指针变为空悬指针指向一块曾经保存数据对象但已无效的内存的指针对 delete 后的指针赋予 nullptr 表明指针不指向任何对象避免空悬指针的相关问题 int *p(new int(42)); // p 指向动态内存 auto q p; // p和q指向相同的内存 delete p; // p和q均变为无效 p nullptr; // 指出 p 不再指向任何对象 4--shared_ptr和new结合使用 可以使用 new 返回的指针来初始化智能指针接受指针参数的智能指针构造函数是 explicit 的即必须使用直接初始化形式来初始化智能指针不能通过内置指针隐式转换为一个智能指针 std::shared_ptrint p1 new int(1024); // 错误 std::shared_ptrint p2(new int(1024)); // 正确// 错误 std::shared_ptrint clone(int p){return new int(p); }// 正确 std::shared_ptr clone(int p){return std::shared_ptrint(new int(p)); } 5--unique_ptr 不同于 shared_ptr某个时刻只能有一个 unique_ptr 指向一个给定的对象         定义 unique_str 时需要将其绑定到一个 new 返回的指针上初始化 unique_ptr 必须采用直接初始化形式 std::unique_ptrint p(new int(42)); 由于 unique_str 拥有它指向的对象因此 unique_ptr 不支持普通的拷贝或赋值操作         不能拷贝或赋值 unique_ptr但可以通过调用 release 或 reset 将指针的所有权从一个unique_ptr 转移到另一个 unique_ptr         // 所有权从 p1 转移给 p2release 将p1置为空 std::unique_ptrstd::string p2(p1.release());std::unique_ptrstd::string p3(new std::string(xxxxx)); p2.reset(p3.release()); // p2释放原来指向的内存所有权从p3转移给p26--weak_ptr weak_ptr 指向由一个 shared_ptr 管理的对象将一个 weak_ptr 绑定到一个 shared_ptr 不会改变 shared_ptr 的引用计数一旦 shared_ptr 的引用计数为0weak_ptr也会相应自动释放         使用 weak_ptr 访问对象前必须调用 lock 判断对象是否存在如果对象存在lock 返回一个指向共享对象的 shared_ptr auto p std::make_sharedint(42); std::weak_ptrint wp(p); // wp若共享pp的引用计数未改变 if(std::shared_ptrint np wp.lock()){.... // np 与 p 共享对象 }
http://www.w-s-a.com/news/399016/

相关文章:

  • 有免费做网站的吗建设互联网站
  • 北京市保障房建设投资中心网站淄博哪个网站做房屋出赁好
  • 如何做网站的优化网站开发怎么收费
  • 网站的关键词怎么选择2345实用查询
  • 免费的制作网站做图剪片文案网站app接单
  • 中国有多少网站有多少域名上海网站建设网页制作邢台
  • 网站 数据报表如何做室内设计联盟官方网站入口
  • 怎样建设网站论文合肥做网站的软件公司
  • 收款后自动发货的网站是怎么做的怎么看网站后台网页尺寸
  • 谷歌seo引擎优化宁波seo关键词
  • 外贸网站建设需要注意什么seo课程
  • 做信息图网站网站建设的软件介绍
  • 网站开发语言数据库有几种魏县审批建设的网站
  • 北京公司网站建设推荐海口建设
  • 不懂编程如何做网站婚礼网站模板
  • 像京东一样的网站wordpress入门视频教程7 - 如何在文章里加入视频和音乐
  • 惠州网站建设排名wordpress3万篇文章优化
  • 创建网站的三种方法北京建王园林工程有限公司
  • jsp网站建设模板下载十大免费excel网站
  • 网络公司网站图片网站建立好了自己怎么做优化
  • 云主机是不是可以搭建无数个网站百度快速seo优化
  • 房地产怎么做网站推广建立音乐网站
  • 川畅科技联系 网站设计网站开发的教学视频
  • 为什么学网站开发凡科登陆
  • 设计师常备设计网站大全中山精品网站建设信息
  • 杭州建设工程网seo服务是什么
  • 兼职做问卷调查的网站wordpress mysql设置
  • 怎么在百度上能搜到自己的网站山西seo谷歌关键词优化工具
  • 网站搭建免费模板飞鱼crm下载
  • 网站开发竞品分析app制作公司深圳