文章目录

  • 1 std::shared_ptr初始化的几种方式
    • 1.1 构造函数初始化
    • 1.2 std::make_shared 初始化(推荐方式)
    • 1.3 reset初始化

1 std::shared_ptr初始化的几种方式

这里只总结一下std::shared_ptr初始化的几种方,不对std::shared_ptr的优缺点进行说明,初始化的方式比较多,平时码字的时候经常会搞迷糊,备忘。

1.1 构造函数初始化

std::shared_ptr<int> pointer(new int(1));std::shared_ptr<int> pointer1 = pointer;std::shared_ptr<std::string> ss(new std::string("AAA"));std::shared_ptr<std::string> = std::shared_ptr<std::string>(new std::string("AAA"));

1.2 std::make_shared 初始化(推荐方式)

std::shared_ptr<string> p3 = std::make_shared<string>();std::shared_ptr<string> p2 = std::make_shared<string>("hello");//auto关键字代替std::shared_ptr,p5指向一个动态分配的空vector<string>
auto p5 = make_shared<vector<string>>();

1.3 reset初始化

std::shared_ptr<int> pointer = nullptr;
pointer.reset(new int(1));

大家如果有兴趣,可以访问我的个人站:http://www.stubbornhuang.com

C++11 - std::shared_ptr初始化的几种方式相关推荐

  1. C++类中成员变量的初始化有两种方式

    C++类中成员变量的初始化有两种方式: 构造函数初始化列表和构造函数体内赋值.下面看看两种方式有何不同. 成员变量初始化的顺序是按照在那种定义的顺序. 1.内部数据类型(char,int--指针等) ...

  2. C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)

    C语言的二维数组初始化的几种方式介绍 1.直接赋值 2.循环对每个元素赋值 3.借用memset/memset_s初始化为0或-1 4.`数组所有元素初始化为相同值(用于大数组初始化贼方便)` 1.直 ...

  3. java类初始数组_java中数组初始化的三种方式是什么

    java中数组初始化的三种方式是:1.静态初始化,如[int a[] = {2, 0, 1, 9, 2020}]:2.动态初始化,如[int[] c = new int[4]]:3.默认初始化,如[i ...

  4. 数组初始化的三种方式

    数组初始化的三种方式 动态初始化:数组定义与为数组分配空间和赋值的操作分开进行: 静态初始化:在定义数字的同时就为数组元素分配空间并赋值: 默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此 ...

  5. 嵌套结构体初始化的几种方式

    嵌套结构体初始化的几种方式 #结构体定义 structA define typedef struct {char a;int b;float c; }struct_A_s; structB defin ...

  6. 结构体初始化的几种方式

    结构体初始化的几种方式 无构造方法的结构体初始化 创建一个结构体 struct STUDENT {string name;int age;string sex; } 定义时赋值 // 定义时赋值,通过 ...

  7. C++11 std::shared_ptr的std::move()移动语义底层分析

    std::shared_ptr的std::move()移动语义底层分析 执行std::move()之前: 执行std::move()之后: 结论:一个浅拷贝 sizeof(std::shared_pt ...

  8. 【Spring MVC学习】WebApplicationContext初始化的三种方式

    ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用"容器"来表述它更容易理解一些,ApplicationContext则是&q ...

  9. java数组初始_java数组初始化的三种方式

    第一种方式:通过给定数组长度来赋值: public static void main(String[] args) { // TODO Auto-generated method stub //第一种 ...

最新文章

  1. 揭秘:一个月不摸鱼能写多少代码?
  2. C++虚函数表,虚表指针,内存分布
  3. 结构体+字符串比较大小(HDU1234开门人和关门人 )
  4. Python中经典类和新式类的区别
  5. 一文说通Blazor for Server-Side的项目结构
  6. python网络编程-一些常用有用的函数
  7. 《Objective-C开发经典教程》
  8. stm32F4修改时钟频率,更换为8MHz晶振
  9. csgo手机上看demo_仪表上的车速和手机导航不一样,哪个更准?碰到测速了该看哪个?...
  10. 【渝粤题库】陕西师范大学163212旅游地理学 作业(专升本)
  11. 编译DPDK遇到make: *** /lib/modules/3.10.0-693.el7.x86_64/build: no such file or dirortory
  12. 利用路由器实现VLAN
  13. 华三交换机配置链路聚合
  14. jsonp跨域原理解析
  15. Spring Cloud Gateway(一)为什么用网关、能做什么、为什么选择Gateway、谓词工厂、过滤器配置
  16. Java8实战读书笔记-第3章 λ表达式
  17. 中国·乌镇互联网产业园项目总投资约100亿元
  18. 如何用计算机玩扫雷,扫雷怎么玩_玩好扫雷游戏的技巧是什么【图文】-太平洋电脑网PConline-太平洋电脑网...
  19. Matlab实现图像简单的几何校正
  20. 文本数据分析:删除停用词

热门文章

  1. [教程]Adblock屏蔽百度投放的页面广告
  2. radware 负载后获取不到原始访问IP
  3. VS2017下编译SOEM(Simle Open EtherCAT Master)
  4. php的存储过程怎么写,存储过程写法是什么
  5. 护眼灯显色指数多大最好?眼科医生推荐灯光显色指数多少合适
  6. 平衡二叉树算法实现C++
  7. YAKE!无监督关键字抽取算法解读
  8. redis防止表单重复提交
  9. 橡胶密封件的设计注意事项
  10. zip(压缩) 和 *zipped(解压)_CodingPark编程公园