智能指针:shared_ptr 1、一个局部的shared_ptr 作为返回值过程:当shared_ptr 被创建的时候,自身的引用计数 +1,当前引用计数为 1 , 按值返回以后 引用计数 + 1 (拷贝构造函数,就是可以理解为基础类型的拷贝),当前引用计数为 2 ,函数执行完成之后,申请的sha ...
分类:
其他好文 时间:
2017-07-06 22:49:14
阅读次数:
195
A shared_ptr<> is a mechanism to ensure that multiple object owners ensure an object is destructed, not a mechanism to ensure multiple threads can acc ...
分类:
其他好文 时间:
2017-07-04 13:32:10
阅读次数:
154
这是smooth_L1_loss_layer.cu的前向传播部分 blob的主要变量: blob只是一个基本的数据结构,因此内部的变量相对较少,首先是data_指针,指针类型是shared_ptr,属于boost库的一个智能指针,这一部分主要用来申请内存存储data,data主要是正向传播的时候用的 ...
分类:
其他好文 时间:
2017-06-27 19:55:48
阅读次数:
1443
晕晕乎乎,其他的再补充 1、shared_ptr 主要是为了方便管理内存而存在的,C++程序中不会再出现new 和 delete,内存的分配和析构全部由shared_ptr进行管理 2、当程序中对某个对象进行复制或者引用的时候,shared_ptr会有一个引用计数这个东西,每当使用一次就+1,用完之 ...
分类:
编程语言 时间:
2017-06-26 23:55:44
阅读次数:
238
智能指针概述: 智能指针用来管理动态对象。其行为类似于常规指针,重要的差别是:它负责自己主动释放所指向的对象。 C++ 11标准库提供两种智能指针:shared_ptr、unique_ptr 差别是:shared_ptr同意多个指针指向同一个对象;unique_ptr则独占所指向的对象。 另外。另一 ...
分类:
编程语言 时间:
2017-06-24 18:31:24
阅读次数:
174
shared_ptr 这里有一个你在标准库中找不到的—引用数智能指针。大部分人都应当有过使用智能指针的经历,并且已经有很多关于引用数的文章。最重要的一个细节是引用数是如何被执行的—插入,意思是说你将引用计数的功能添加给类,或者是非插入,意思是说你不这样做。Boost shared_ptr是非插入类型 ...
分类:
编程语言 时间:
2017-06-22 13:20:56
阅读次数:
172
动态内存: 运算符:new,delete 智能指针: shared_ptr类 智能指针也是模板,创建指针时,提供指针指向的类型; make_shared 函数 引用计数:一旦一个shared_ptr的计数器变为0,它就会自动释放自己所管理的对象; shared_ptr自动销毁所管理的对象,通过 析构 ...
分类:
编程语言 时间:
2017-05-13 22:16:20
阅读次数:
199
1. boost::shared_ptr 前面我已经讲解了两个比较简单的智能指针,它们都有各自的优缺点。由于 boost::scoped_ptr 独享所有权,当我们真真需要复制智能指针时,需求便满足不了了,如此我们再引入一个智能指针,专门用于处理复制,参数传递的情况,这便是如下的boost::sha ...
分类:
编程语言 时间:
2017-05-11 22:30:52
阅读次数:
337
shared_ptr定义如下: shared_count定义如下: _Sp_counted_base定义如下: sizeof(_Sp_counted_base) = 48,在_Sp_counted_base_Impl中,_Ptr是对象指针,而_M_del结构如下: 因此shared_ptr对象的体积 ...
分类:
其他好文 时间:
2017-05-09 20:38:56
阅读次数:
275
动态内存和智能指针 动态内存: 1.针对堆里面存放的对象 2.使用new delete运算符 3.智能指针:shared_ptr(多个指针指向同一个对象); unique_ptr(一个指针指向一个对象); weak_ptr(弱引用,管理shared_ptr) 4.标准库函数:make_shared< ...
分类:
编程语言 时间:
2017-05-07 10:23:34
阅读次数:
136