zoukankan      html  css  js  c++  java
  • c++ 之shared_ptr与make_shared用法

      如果事先知道所需内存空间,使用静态内存是最简单的解决方案。

      但是,在程序设计的过程中,往往会遇到需要开辟一个未知大小的内存空间,该空间根据程序所需发生大小的变化,此空间称为动态内存。

      程序设计中使用动态内存的原因可能如下:

    (1)程序不知道自己需要多少对象;

    (2)程序不知道所需对象的准确类型;

    (3)程序需要在多个对象之间共享数据

    shared_ptr的用法:可以指向特定类型的对象,用于自动释放所指的对象。

    make_shared的用法:make_shared在动态内存中分配一个对象并初始化它, 返回指向此对象的shared_ptr,与智能指针一样,make_shared定义在头文件memory中;

    当要用make_shared时,必须指定想要创建的对象类型,定义方式与模板类相同,在函数名之后跟一个尖括号,在其中给出类型;

    如make_shared<int>p3 = make_shared<int>(42)

    一般采用auto定义一个对象来保存make_shared的结果,如auto p1 = make_shared<int>(42);

    感谢https://blog.csdn.net/u013360881/article/details/71798950

    智能指针的用法更多请参考C++ Reference.

    注意智能指针是指针!指针所指向的对象有一个引用次数的属性,当引用次数为0时,该对象就会被析构。

  • 相关阅读:
    hdu 5101 Select
    hdu 5100 Chessboard
    cf B. I.O.U.
    cf C. Inna and Dima
    cf B. Inna and Nine
    cf C. Counting Kangaroos is Fun
    Radar Installation 贪心
    spfa模板
    Sequence
    棋盘问题
  • 原文地址:https://www.cnblogs.com/jianfeifeng/p/11153646.html
Copyright © 2011-2022 走看看