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
一周排行
  • 架构图:1.安装keepalivedkeepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,后来又加入了VRRP的功能,VRRP是Virtual Router Redundancy Pro ...
  • nginx的限制连接模块limit_zone与limit_req_zone
    nginx 上有两个限制连接的模块一个是 limit_zone 另一个是 limie_re ...
  • XenApp_XenDesktop_7.6实战篇之十七:XenApp应用程序交付
          本章节将为大家分享XenApp应用程序和共享桌面的交付,可以根据实际应用交付应 ...
  • Loadrunner下载文件脚本Action(){         intflen;   //定义一个整型变量保存获得文件的大小         longfiledes; //保存文件句柄         charf ...
  • i386和i686现在所有的intel 32位体系(包括AMD等兼容CPU)都叫i386体系,包括P4..i686仍然属于i386体系,不过对CPU(相对于386)的特性作了指令优化.GNU/Linux分为alpha ...
  • 公司更新了新的会议平台,所以老的平台就不用了.直接在macbook应用程序里卸载,但发现卸载后,依然有日志生成.很是烦恼.所以在终端中使用了以下命令mdfind -name "xxxx"然后找到相 ...
  • 简介在开发软件应用程序过程中,随着应用程序的开发,会出现重复性的模式. 随着整个软件系统的开发,很多相同的模式会逐渐显现出来. 这种重复性模式概念在其他应用中是非常明显的. 汽车制造就是一种此类应用. 很多不同的汽车 ...
  • 解决办法: 输入   @powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new ...
  • 越来越多的企业正在使用和考察CRM软件产品,这是为了与客户更好的交互从而建立更好的客户关系,从而增强自身的竞争能力并提升管理效率.特别是在中小企业市场,与大型企业软件追求广度和细度略有不同的是,中小企业管理软件往往更 ...
  •                                                 计算机网络1 计算机网络向用户可以提供那些服务?答: 连通性和共享 2 简述分组交换的要点.答:(1)报文分 ...