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
一周排行
  • 单片机中断的应用
    51单片机:        P3.2 引脚为INT0 中断        P3.3引脚为I ...
  •     当初在Apache开发时还未出现Servlet的概念,所以Apache不能内置支持Servlet.实际上,除了Apache,其他许多Web服务器软件都不能直接支持Servlet.为了支持Servlet,通常要 ...
  • SQLServer的一次堵塞分析(7)今天工作人员突然报告说某个界面无法正常打开了,第一个想到的便是SQLServer又发生堵塞了.在SQLServer中,做了一个5分钟运行一次的定时任务,定期扫描 ...
  • 矩阵的应用
    一.用途 矩阵的一个重要的用途是进行递归是的计算,最明显的就是快速求数列的某一项的值.本文 ...
  • 封装分页查询的类
    <?php /** file: page.class.php 完美分页类 Page ...
  • 大黄在第一时间,留言了我的Blog的文章"MVP OPEN DAY 北京之行",很让我吃惊.原来,大黄一直有浏览我的Blog的,呵呵好荣幸.大黄是我在ZDnet上认识的技术前辈,虽然年龄比我小.他 ...
  • 首先解释下什么是Tomato DualWAN,一个免费的路由系统,当然你要捐赠它也可以:使用方式是将系统刷入路由器,家用路由器的也可以,而且便宜.其特点是多wan,可以任意将内网口转换为外网口,支持多路wan口拨号. ...
  • js实现智能提示搜索框
    <%@ page contentType="text/html;chars ...
  • 调查显示英国新一代企业家注重创新
        英国近日一项针对企业家的网上调查显示,21世纪初的创业者同上世纪80年代的创业者大 ...
  • 编写一个能生成小学四则运算题目的运算
    #include<stdio.h> #include<stdlib.h& ...