在C++11中,引入了智能指针。主要有:unique_ptr, shared_ptr, weak_ptr。 这3种指针组件就是采用了boost里的智能指针方案。很多有用过boost智能指针的朋友,很容易地就能发现它们之间的关间: std boost 功能说明...
分类:
编程语言 时间:
2015-06-12 15:24:56
阅读次数:
501
1、异常安全 出异常后,不占有资源,也不破坏数据涉及资源型语句,最好单独写成一行。因为同一行语句,执行顺序是不确定。// 试想,如果执行顺序是 new A -> priority() -> shared_ptr// 如果priority()执行中出现异常,那么new A执行后的资源将无法释放dea....
分类:
其他好文 时间:
2015-06-09 17:04:48
阅读次数:
143
Cocos2d-x 3.2:智能指针本文转载自深入理解Cocos2d-x 3.x:内置数据结构(1)智能指针智能指针在 C++ 11 的标准中已经存在了,分别是unique_ptr,shared_ptr,weak_ptr,其中最常用的应该是share_ptr,它采用引用计数的方 式管理内存,当引用计...
分类:
其他好文 时间:
2015-06-08 07:19:21
阅读次数:
233
主要功能:
Blob 是Caffe作为数据传输的媒介,无论是网络权重参数,还是输入数据,都是转化为Blob数据结构来存储,网络,求解器等都是直接与此结构打交道的。
其直观的可以把它看成一个有4纬的结构体(包含数据和梯度),而实际上,它们只是一维的指针而已,其4维结构通过shape属性得以计算出来(根据C语言的数据顺序)。
protected:
shared_ptr d...
分类:
其他好文 时间:
2015-06-04 22:48:34
阅读次数:
179
《Effective C++》在资源管理一节提到了智能指针,智能指针中最著名的当属auto_ptr和shared_ptr。本文主要研究两者的实现。auto_ptr的实现:templateclass auto_ptr{private: T *ap;public: explicit au...
分类:
其他好文 时间:
2015-06-03 17:35:48
阅读次数:
116
为什么要用智能指针?
我们知道在C++中,资源管理是个头疼的问题。资源管理最常做的就是内存管理。而指针用起来如果忘记归还,就会导致内存泄露。
比如:class Oneclass{};
int func(){
Oneclass* one=new Oneclass;
if(!one)return 1;
delete one;
return 0;
}可见,上面代码中,我...
分类:
编程语言 时间:
2015-06-02 09:29:59
阅读次数:
138
shared_ptr是一個模板類,它保存了一個指向動態分配的對象的指針,當指向這個對象的最後一個shared_ptr被銷燬的時候,這個對象也被銷燬了。
有三種使用 shared_ptr的方法:
1)使用 std::shared_ptr
要用 std::shared_ptr的方式使用。
實例代碼:
#include
#include
class A
{
public:
A()
...
分类:
其他好文 时间:
2015-05-30 18:20:51
阅读次数:
115
目前测试功能正常。若有不完善的地方在改进吧。时候不早了睡觉去,哎,翘课会被抓,不冒险了。晚安全世界O(∩_∩)O 1 /************************************************************************* 2 *my shared_...
分类:
其他好文 时间:
2015-05-28 01:56:48
阅读次数:
161
这些智能指针在设计的时候,一个关键的问题就是所有权的控制。如果把指针所指向的对象比作电视机的话,那么指针就是观众。第一个人需要看电视的时候需要打开它,没人看的时候就要保证把电视关掉。
对于std::auto_ptr,boost::shared_ptr和scoped_ptr,情况如下:
1. std::auto_ptr:auto_ptr这个种族很有趣,每次只让一个人看电视,大家可以换着看,由...
分类:
编程语言 时间:
2015-05-22 00:35:17
阅读次数:
154
tr1::shared_ptr和tr1::auto_ptr都提供一个get成员函数,返回智能指针内部的原始指针:
)operator*和operator->隐式转换至底部指针:
注意:...
分类:
其他好文 时间:
2015-05-19 22:38:07
阅读次数:
166