文档:http://www.boost.org/doc/libs/1_57_0/libs/smart_ptr/shared_ptr.htmIntroductionTheshared_ptrclass template stores a pointer to a dynamically allocat...
分类:
其他好文 时间:
2015-02-05 18:16:23
阅读次数:
238
题目:《编程之美》P241
提示:利用动态规划的思想,保存每次循环所计算出来的数据,可以避免重复计算
class treenode
{
public:
int data;
shared_ptr left,right;
treenode(int d,const shared_ptr &l,const shared_ptr &r):data(d),left(l),right(r){}...
分类:
其他好文 时间:
2015-02-04 14:42:16
阅读次数:
112
1.搜索指定文件夹下的文件名和路径#undef UNICODE #include #include #include #include #include #include std::shared_ptr > fileList(co...
分类:
编程语言 时间:
2015-02-02 18:01:22
阅读次数:
197
为防止资源泄漏,请使用RAII(Resource Acquisiton Is Initialization) 对象,它们在构造函数中获得资源并在析构函数中释放资源。两个常被使用的RAII classes 分别是tr1::shared_ptr和auto_ptr。前者通常是较佳选择,因为其copy行为比...
分类:
编程语言 时间:
2015-01-30 22:23:54
阅读次数:
171
boost.smart_ptr库提供了六种智能指针:scoped_ptr、scoped_array、shared_ptr、shared_array、week_ptr和intrusive_ptr。
说到智能指针,我们会想到c++98标准中的自动指针auto_ptr.auto_ptr获取指针所有权后,离开作用域时自动释放该指针指向的堆内存。也可以转移指针的所有权。
auto_ptr ap_a1(new...
分类:
其他好文 时间:
2015-01-30 21:08:29
阅读次数:
364
shared_ptr与scoped_ptr都包装在堆上分配的动态对象,都重载了*和->操作符以模仿原始指针行为,但shared_ptr实现的是引用计数型的智能指针,当没有代码使用时计数为0,此时释放被包装的动态分配的内存。shared_ptr可以被自由地拷贝和赋值。shared_ptr可以安全地放到标准容器中。引用《boost程序库完全开发指南》中的话:“shared_ptr非常有价值、非常重要、...
分类:
其他好文 时间:
2015-01-30 21:06:47
阅读次数:
248
std::auto_ptr很多的时候并不能满足我们的要求,比如auto_ptr不能用作STL容器的元素。boost的smart_ptr中提供了4种智能指针和2种智能指针数组来作为std::auto_ptr的补充。
shared_ptr:使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全.
weak_ptr:weak_ptr 是 shared_ptr 的观察员...
分类:
其他好文 时间:
2015-01-29 09:22:31
阅读次数:
288
题目:EPI
书上的代码我认为有错。我的代码如下所示,时间复杂度为O(h),h为二叉树的高度。
//该函数不允许r和s为nullptr,且要求r、m、s三个指针互不相等
bool is_r_s_descendant_and_ancestor(shared_ptr r, shared_ptr m, shared_ptr s)
{
if (m == nullptr || r == nul...
分类:
其他好文 时间:
2015-01-18 14:27:37
阅读次数:
265
在effective C++经常会提到智能指针,这里对shared_ptr进行一个总结:
1 简要介绍用法
智能指针主要是用于资源管理,当申请一个资源的时候为了保证在离开控制流的时候对应资源应该得到相应的释放,这个时候如果资源对应一个类,在构造类的时候进行资源的分配(也就是书中经常提到的Resource Acquisition Is Initialization RAII),在对象离开作用域...
分类:
其他好文 时间:
2015-01-13 15:59:01
阅读次数:
298