一、unique_ptr类

  • 头文件:#include<memory>

  • 智能指针,是一个模板。创建智能指针时,必须提供指针所指的类型

与shared_ptr的不同之处:

  • shared_ptr所指向的对象可以有多个其他shared_ptr智能指针

  • 而unique_ptr所指向的对象只能有一个unique_ptr指针,也就是自己。当unique_ptr被销毁时,它所指向的对象也被销毁

二、unique_ptr类的初始化

  • unique_ptr指针需要绑定到一个new返回的指针上,并且不能直接将new的结果用赋值运算符“=”赋值给unique_ptr

unique_ptr<double> p1;//正确
unique_ptr<int> p2(new int(42));//正确
unique_ptr<int> p3 = new int(42);//错误

三、unique_ptr之间不存在拷贝与赋值

  • 原因:因为unique_ptr所指向的对象只能有一个unique_ptr指针,也就是一个引用计数。因此unique_ptr不支持普通的拷贝和赋值操作

unique_ptr<string> p1(new string("HelloWorld"));
unique

C++(STL):05---智能指针之unique_ptr相关推荐

  1. 深入学习c++--智能指针(三) unique_ptr

    1. 几种智能指针 1. auto_ptr: c++11中推荐不使用他(放弃) 2. shared_ptr: 拥有共享对象所有权语义的智能指针 3. unique_ptr: 拥有独有对象所有权语义的智 ...

  2. C++自学24:唯一智能指针(make_unique/unique_ptr/reset/release/get/13.1)

    使用make_unique获取一个智能指针,智能指针的类型是unique_ptr // a不是数组,小括号里的就是值 std::unique_ptr<int> a = std::make_ ...

  3. C++11智能指针(unique_ptr、shared_ptr、weak_ptr)boost::scoped_ptr

    C++11智能指针(unique_ptr.shared_ptr.weak_ptr)_-码农小非-的专栏-CSDN博客_c++ shared_ptr weak_ptr 原创)智能指针拾遗 (原创)智能指 ...

  4. C++11新特性——智能指针之unique_ptr

    此课件及源代码来自B站up主:码农论坛,该文章仅作为本人学习笔记使用. unique_ptr独享它指向的对象,也就是说,同时只有一个unique_ptr指向同一个对象,当这个unique_ptr被销毁 ...

  5. 智能指针之unique_ptr

    unique_ptr实现的是专属所有权语义,用于独占它所指向的资源对象的场合.某个时刻只能有一个unique_ptr指向一个动态分配的资源对象,也就是这个资源不会被多个unique_ptr对象同时占有 ...

  6. C++智能指针:unique_ptr详解

    文章目录 unique_ptr描述 声明 作用 函数指针描述 总结 unique_ptr描述 声明 头文件:<memory> 模版类: 默认类型template <class T, ...

  7. 【C++11新特性】 C++11智能指针之unique_ptr

    原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50759210 在前面一篇文章中,我们了解了C++11中引入的智能指针之一shar ...

  8. C++智能指针中unique_ptr部分内容的讲解

    参考链接 std::unique_ptr 介绍 定义位于头文件<memory> std::unique_ptr 是通过指针占有并管理另一对象,并在 unique_ptr 离开作用域时释放该 ...

  9. 智能指针(三):unique_ptr使用简介

    文章转自:http://blog.csdn.net/weiwenhp/article/details/8708281 版权归原作者! 我们知道auto_ptr通过复制构造或者通过=赋值后,原来的aut ...

最新文章

  1. ryu的防火墙功能 ryu.app.rest_firewall,配合mininet和open vswitch(OVS)
  2. Navicat For Mysql快捷键
  3. PowerDesigner生成数据库建表sql脚本
  4. mysql binlog日志的三种模式
  5. laravel框架中文手册_laravel请求参数校验方法
  6. 计算机软考初级工程资料,计算机软考网络工程师复习资料及习题(一)
  7. 4-什么是Image和container
  8. 哈希表取模选择素数分析
  9. 力扣每日一刷--验证回文串
  10. Atitit 技术学习 的方法总结 attilax总结 目录 1.1. 跨框架 1 1.2. 跨语言学习法 1 1.3. 概念学习法 1 1.1 在比较中学习 多语言  2 1 1.3 .2 在历史
  11. Python 生成UUID
  12. AlphaGo算法框架解读
  13. FPGA零基础学习:UART协议驱动设计
  14. 公安大数据应用之情报分析与关联挖掘
  15. Android App性能测试| 流量、电量、弱网环境
  16. Java 线程池常见误区
  17. 微前端框架 之 qiankun
  18. [译] UX 设计实践:如何设计可扫描的 Web 界面
  19. Don’t Miss the Labels: Label-semantic Augmented Meta-Learner for Few-Shot Text Classification
  20. 基于Snort的入侵检测系统

热门文章

  1. java拆装_Java自动拆装包
  2. ubuntu ip设置
  3. php查询文件名,php怎么查询文件名
  4. hdfs 多个文件合并_hadoop学习笔记3 hadoop程序将本地文件夹中多个文件,合并为一个文件并上传到hdfs中--梦飞翔的地方(梦翔天空)...
  5. 第十二节:WebApi自动生成在线Api文档的两种方式
  6. ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】
  7. 39策略模式(Strategy Pattern)
  8. 一步步编写操作系统 14 CPU与外设通信——IO接口 上
  9. python多重赋值技巧_python教程12课:多元赋值、多重赋值、运算符以及判断字符串类型...
  10. html5测试 iphone6sp,5款旧iPhone测试iOS运行速度:只有6S速度明显提升