shared_ptr

RAII和模拟实现智能指针 2016-04-06

什么叫RAII(Resource Acquisition Is Initialization)?RAII指的就是资源分配即初始化,它的作用就是定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放.它是一种技术.为什么要使用RAII?在堆上分配空间时,我们必须很仔细的申请并给出相应的释放语句,但是随着程序的复杂度增大,判断.循环.递归这样的语句会让程序走向不确定,很有可能出现申请了没释放,申请了多次释放.所以我们定义了一个类来

C++智能指针的作用,模拟实现auto_ptr,scoped_ptr,shared_ptr,scoped_array,shared_array 2016-03-20

RAII(Resource Acquisition Is Initialization):资源分配即初始化,定义封装一个类,用来实现调用构造函数时就可完成资源的分配和初始化,在调用析构函数就可完成资源的清理,以实现对资源的初始化和清理.智能指针:用自动化或者说智能的指针来实现对动态内存的释放.它是一个类,有类似指针的功能.常见的智能指针有:auto_ptr/scoped_ptr/scoped_array/shared_ptr/shared_array一.AutoPtr首先,先介绍AutoPtr,

C++-在文件中查找指定的词出现的行号(shared_ptr) 2013-11-07

在文件中 查找 指定的词 出现的行号 (shared_ptr)在一个指定的文本中, 查找相应的词, 并输出词出现的行号, 和具体的行, 不重复出现行. 由于传输的文本较大, 所以使用指针进行传递, 智能指针的"shared_ptr".代码来自"C++ Primer"; 具体细节, 详见代码注释;代码:/* * cppprimer.cpp * * Created on: 2013.11.7 * Author: Caroline */ #include <iost

C++-shared_ptr拆分智能指针(smartpointer) 2013-11-04

"shared_ptr" 拆分智能指针(smart pointer)两个"shared_ptr"指针, 共享内存数据, 如果其中一个修改, 则对象(object)修改, 两个指针指向的数据均修改.如果想把两个指针拆分开,单独修改某一个, 则需要使用, unique()和reset()方法.如下代码所示, 只修改p, 并保持q不变, 但是两个的使用数量(use_count)均由2变化为1.代码:/* * CppPrimer.cpp * * Created on: 20

主流RAIIclass的存在价值——不存在能够完全替代DumbPointer的RAIIclass 2012-02-05

前言前几天在很多地方老是碰到RAII(Resouce Acqusition Is Initialition)相关的话题,对于这一块,由于自己以前在代码中很少用到,从来都习惯于使用dumb pointer,所以从没仔细去研究过.当它足够频繁的出现在我的眼前时,我渐渐意识到,是时候该做个了断了(说“了断”貌似有些夸张,其实也只是想把它研究透,以免以后老出现在我的眼前而不知其内部原理..).事实上,我当早该写这篇博文了,只是当我在看标准库的auto_ptr源码时,又发现里面的exception han
一周排行
  • Zookeeper安装部署一.下载zookeeper安装文件[[email protected] ~]# wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.6/zo ...
  •                  上一篇文章中了解到了Spinner的简单用法,知道了Spinner的数据源一般有两种形式.        XML文件和数组的方式.这次的内容主要是想在Spinner上实现省市区三级联 ...
  • select case    when sum(grade)>500000 then sum(grade)    else 0    end    from test1    where id>100;  ...
  • [索引页]http://webabcd.blog.51cto.com/1787395/342779示例SourceDataModel.cs using System; using System.Net; using ...
  • 从Exchange通往Office365系列十六添加域名到Office365
        在谈将本地的Exchange迁移到Office 365之前,首先我们要将自己公司的 ...
  • mysqldump备份警告
    一.发现问题使用mysqldump全库时警告-- Warning: Skipping th ...
  •          轻量级基础架构由Microsoft System Center Application Virtualization Streaming Server 组成.该服务器可以对应用程序进行序列化,另外还 ...
  • SQL Server 允许动态执行 T-SQL 语句.一.EXECUTE 可以通过 EXCUTE 动态执行由字符串组成的 T-SQL 语句. 示例USE master; EXEC ('USE AdventureWor ...
  • 今日开始研究使用java平台上的框架解决web服务端的开发. 这是一个完整的SSH实例,在马士兵老师的SSH整合代码基础上,增加用户的增删改查,同时实现structs方式的分页 放出源代码供大家学习参考.关键是网上的 ...
  •         昨天上网发现一些企业已经开始校园招聘了,准备写一份简历.但是提笔后发现自己想写的很多,但是什么都写不出来.            所以现在请教博客的各位大哥大姐,简历怎么写啊--        谢谢了 ...