自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 笔记

阅读设计模式时,先理解里面的概念,在后续的学习中,可减少很多困难。接口:一个对象能接受的所有操作集合称为该对象的接口。(通俗理解,public方法)对象的类型:用来标示特定的接口。对象的类:对象的实现,包括了成员,内部状态,操作实现。举例:两个对象以及其接口:Window{open,clos},Door{clock,unclock}如果对像BlackHouse:Door{c

2015-10-23 16:04:05 547

原创 笔记

字节序小头:将低字节作为开始,存储在开始地址大头:将高字节作为开始,存储在开始地址存储的基本单位是字节,所以多字节类型在存储时,会按照一个顺序拆分成一个个字节,然后存储。例:存储0x1234地址  0x01  0x02小头  34    12大头  12    34字节对齐1、规则: 1-指定对齐字节和自身中取最小的。 2-结构体以结构体中的最大成员

2015-10-23 10:51:43 468

原创 申请数组内存空间时做了哪些事情

申请数组时,除了分配申请的空间之外,还会分配一些空间存储和这块内存相关的信息1、_CrtMemBlockHeader,放在申请的内存空间之前,包括两部分:[1]这块内存的相关信息。[2]申请内存之前连续4个字节,值为fdtypedef struct _CrtMemBlockHeader{// Pointer to the block allocated just before th

2015-10-22 09:41:38 1885

原创 状态模式

当一个对象可能有N中状态,而且每种状态下对象的行为都不一样,同时状态间的关系较为复杂时,使用状态模式。状态模式是针对此对象每种状态定义一个类,每个类中都有此对象的指针,在每个类中处理和状态相关的动作(函数)。此对象包含这些这些状态类的指针族,同时有一个表示当前状态的指针,同时变化这个指针的值来修改当前状态对应的动作。在非必须使用状态模式的情况下,不要使用,这个实现类太多,同时代码阅读性

2015-08-27 15:38:11 328

原创 访问者模式

访问者模式比较绕。她主要有两个东西,一个是元素,一个是访问者。他们的关系时,元素接受访问者,访问者访问元素。在元素接受访问者时,将访问者传递给元素。在这个函数中,访问者访问这个元素,这时将这个元素传递给访问者。一般情况下不需要用到访问者模式。还没理解什么情况下需要用到这个模式。

2015-08-27 15:19:10 371

原创 职责链模式

当一件事情需要一级一级的向下传递时,可以用职责链的方式。又分其它几个情况1、在这个职责链中每个节点都有相应操作,这样用职责链是最好的选择2、在这个职责链中只有最后一个才做相应的处理,前面的节点都是起到传递和搜寻最后一个节点的作用。则此时,可以用职责链也可以用表驱动来实现。职责链模式是将我们需要用户去一级一级的寻找处理者,变为用户找到一个处理者,然后这个处理者处理后由这个处理

2015-08-27 14:28:47 329

原创 迭代模式

参考vector等

2015-08-27 11:45:21 373

原创 观察者模式

当存在一对多的关系时,我们设计一个观察者,用来处理一个变化引起的相关变化动作。设计一个观察者,观察者维护一系列对象族,这些对象族都是由相应动作需要做出变化者自己注册的。当一个变化发生时,会通知观察者这个变化,然后观察者会遍历所有对象族,通知相应对象

2015-08-27 11:31:57 265

原创 装饰模式

装饰模式对于一个已有的类,需要对其增加一些小的功能属性,同时这些功能属性和这个类本身关联性不是很强,这时使用装饰模式而不使用继承。装饰模式即提供一个新类,这个新类由被装饰的类组合而成(被装饰类指针),同时增加装饰功能。

2015-08-27 11:20:54 264

原创 组合模式

当构建层次结构时,比如像树时。每一个节点都可以由简单节点构成,而当前这个节点又是上一个节点的简单节点。我们不想要区分这些简单节点和复杂节点。我们可以定义一个接口类,这个接口类中包括了要使用的共有接口,然后不论简单还是复杂节点都继承这个类。如此我们以后再使用和遍历这个树时,对待每个节点可以直接向对待这个接口类一样,不必要去区分不同的节点。

2015-08-27 10:54:59 285

原创 桥接模式

当一个对象受多个因素变化影响时,可以将这些因素抽象出来(也可以留一个作为主类)。对每个因素抽象一个抽象类,然后在一个主类中,对每个抽象类拥有一个指针。通过这个指针来变化没个因素。比如,一支笔(CPen)有尺寸和颜色两个因素,我们可以把颜色抽象出来成(CColor),然后在CPen中有一个CColor的指针pColor,这样当颜色因素变动时,我们只需要变化pColor就可以了。本质上是,

2015-08-27 10:34:17 333

原创 Adapter

类适配:适配类去继承要适配的类,提供目标接口函数,在目标接口函数调用现有函数。就是对要适配的类进行一次封装对象适配:适配类有一个要适配类对象,提供目标接口函数,在目标接口函数通过适配对象调用其现有函数。就是对其一次组合封装。适配是通常是对几个类的现在有函数组合使用。

2015-08-27 09:52:08 314

原创 原型模式

由一个对象克隆

2015-08-27 09:34:22 299

原创 模板模式

又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下,重新定义算法中的某些步骤。在一个方法中定义一个算法的骨架:在父类中提取所有子类的公共部分,而这些公共部分中的某一个步骤在子类中不一样时,想这部分抽取成一个虚函数。而将一些步骤延迟到子类中:上面提取的虚函数在子类中具体实现。

2015-08-26 16:41:39 296

原创 Builder

主要有两部分组成Builder:提供各个小组件的生产方法Director:用Builder提供的组件安装一定的组装逻辑,组装成产品

2015-08-26 15:40:49 303

原创 生成模式

生成模式:Factory,着重于生产一系列产品,这些产品都有相同的功能,但是每个功能的做法和具体实现不一样。Builder,着重于生产一系列产品,这些产品都可以由“一堆零件”中的部分零件组合而成。

2015-08-26 15:23:19 527

原创 工厂模式

述求:我要使用一个东西:1、我只需要关心     1.1我从哪里拿到它     1.2我怎么使用它2、其它诸如怎么生产的,我使用时它内部怎样工作的我都不关心实现我要使用一个东西:1、我需要看到     1.1一个生产工厂,有一个生产次东西的接口     1.2一个接口类,里面有我要使用的每个方法函数2、具体怎么生产放到子类工厂实现,使用东

2015-08-26 11:22:28 308

转载 http://guides.ruby-china.org/

http://guides.ruby-china.org/

2015-02-19 19:11:51 838

转载 应用程序无法启动,因为应用程序的并行配置不正确。

问题:执行VC的exe程序,报错“应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。” 解决方法:方法一:在类似C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件

2015-01-27 14:57:10 1264

转载 应用程序无法启动,因为应用程序的并行配置不正确。

问题:执行VC的exe程序,报错“应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。”解决方法:方法一:在类似C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT

2015-01-27 14:54:39 7528

原创 编码规范——头文件

1、头文件   头文件依赖是导致编译时间过长的罪魁祸首   1.1头文件只包含对外的接口声明,不应包含内部使用的函数。   1.2头文件只包含声明,实现都应放入cpp。   1.3头文件职责要单一   1.4头文件向稳定方向包含   1.5禁止头文件循环依赖   1.6禁止包含无用的头文件,减少依赖   1.7头文件自包含:该头文件包含所有自己编译通过需要的头文件,

2015-01-05 17:49:45 1431

转载 STL学习

1、 为了保证安全,所有的push_back和insert插入的都是插入对象的拷贝而非元对象。2、 使用empty()而不是使用size()==0来判断是否为空。3、 font()、back()使用前一定判断是否为空,返回的是对象。4、 STL提供了很多容器区间函数,用来进行区域操作,效率比自己写高很多。5、 erase返回是删除对象的下一个迭代子,用来循环删除。iter=eras

2014-12-09 09:08:03 438

原创 模板类特例化,模板函数特例化

templateclass Test{public: void out() {   cout  }private: T myT;};模板类特例化:template class Test;模板类特例化后,会对所有的类函数进行编译,可以检查出潜藏的错误。 模板函数特例化 void Test::out(){cout 特例化后,此类的该函

2014-12-08 17:57:32 2678

转载 NSIS详解

NSIS特别说明:某些脚本需要额外的DLL支持,如MPC关联程序,就有可能需要InstallOptionsEx.dll,另外,可能需要编译语言头文件如:SimpChinese.nsh,可能需要把 !define 全部替换为 !insertmacro MUI_DEFAULT,别的语言以此类推!还有一些大家需要自己在制作过程中去摸索!在此就不一一指出.脚本结构:安装程序属性-页

2014-09-02 10:49:22 12621

转载 NSIS脚本实例(引)

; 安装程序初始定义常量 !define PRODUCT_NAME "银驼铃MSAP2000网元管理软件" !define PRODUCT_VERSION "1.0" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRO

2014-09-02 10:45:15 2182

转载 NSIS的一些变量

$PROGRAMFILES程序文件目录(通常为 C:\Program Files 但是运行时会检测)。$COMMONFILES公用文件目录。这是应用程序共享组件的目录(通常为 C:\Program Files\Common Files 但是运行时会检测)。$DESKTOPWindows 桌面目录(通常为 C:\windows\desktop 但是运行时会检测

2014-09-02 10:43:51 8889

转载 开源网站

–free Open source, 国外最著名的开源组织,上面可以找到成千上万的开源项目,包括apache ,mysql ,php,phpbb,…. http://search.csdn.net/ CSDN搜索,CSDN还是有非常多的编程资源的,用它的搜索能搜出不少东西。代码类别也比较全面。 http://snippets.org/

2014-08-24 19:23:17 496

转载 Mac图片格式转换

不知道苹果怎么想的,七八种图片数据类型格式,转换起来非常麻烦。本文摘抄了几种转换的方法,供参考。将NSImage转换为CIImage  #import  // convert NSImage to bitmapNSImage * myImage  = [self currentImage];NSData  * tiff

2014-08-14 11:05:22 793

转载 C++实现CD抓轨转WAV

现在介绍一下C++实现CD抓轨转WAV,CD抓轨的方法有好几种,现在介绍其中一种。我们 可以通过API函数CreateFile获得设备句柄,再用API函数DeviceIoControl来实现对设备 的访问获取信息。再此还会用到WAVE文件结构WAVEFORMATEX,再把读到的信息写到文件里 生成WAVE格式的文件。我们要用到的头文件有: ntddcdrm.h(NTDDK开发包) wini

2014-05-21 14:21:04 1456

转载 Windows & Mac 光盘刻录软件

Nero 这款最著名的光盘刻录软件终于推出其免费的版本了,对刻录要求不高的用户又有了一个新的选择。根据官方的描述,最新的 Nero 9 免费版仅包含有 CD 和 DVD 的简单数据刻录和光盘复制功能,只有在升级至Nero 9 完整版才可以使用其他特性和功能,例如音频和视屏的刻录功能。当然,优秀的免费刻录软件也有很多,借此之际,介绍一些 Windows 与 Mac 上常用的光盘刻录软件。虽然大部分软

2014-05-15 11:56:17 6349

转载 刻录CD-R:cdrecord 和cdparanoia之Linux基本的应用程序

刻录CD-R:cdrecord 和cdparanoia之Linux基本的应用程序(下)以下命令按4x的速度“刮写”所有的音轨,每个音轨存为不同的*.wav文件:cdparanoia -S 4 -B "1-"注意你有足够的硬盘空间。如果你设置双系统启动,你也可以使用DOS上的分区。如果要写音频文件到CD-R(W)上,我可以使用:cdrecord -v spee

2014-05-14 18:13:09 3536 1

转载 阿拉伯语字母表

阿拉伯语属阿非罗一亚细亚语系闪米特语族,是世界主要语言之一,是西亚和北非22个国家和地区的官方语言,使用人口约2亿。它是联合国6种工作语言之一,是全世界穆斯林通用的语言。阿语方言众多,现代标准阿拉伯语采用以《古兰经》为代表的典范的文学语言,书面语与口语不尽相同,与大马士革方言接近。阿拉伯语有28个字母,都是辅音。元音没有字母(其实字母ى和و表示i和u,字母y与i的符号不同,u与w同用一个符号ِ

2014-05-12 10:48:38 96389

转载 各种ISO 8859字符集

ISO/IEC 8859-1 (Latin-1) - 西欧语言ISO/IEC 8859-2 (Latin-2) - 中欧语言ISO/IEC 8859-3 (Latin-3) - 南欧语言。世界语也可用此字符集显示。ISO/IEC 8859-4 (Latin-4) - 北欧语言ISO/IEC 8859-5 (Cyrillic) - 斯拉夫语言ISO/IEC 8859-6 (Arabic) - 阿拉伯

2014-05-09 16:50:37 4409

转载 删除所有svn文件(一个目录和其各级子目录下的) 两种方法

[1]用find命令和其action来实现[2]用rm直接实现$ cd /tmp/xxx$ rm -rf  `find . -name .svn`就可以实现了。删除SVN目录及从服务器端删除SVN版本库文件方法详解在学习SVN的过程中,你可能会遇到这样的问题,如何删除SVN目录?如何从服务器端彻底删除SVN版本库中部分文件夹或文件夹?本文为你一一解答

2014-04-17 10:47:13 12193

原创 Mac装Xcode后开不了机

删除几个文件就可以在目录:/Volumes/Mavericks/System/Library/Extensions

2014-04-11 09:46:48 529

原创 使用编码格式转换工具将cpp文件由GB18030转成UTF8

使用编码格式转换工具将cpp文件由GB18030转成UTF8在MacOS终端批量转换文件编码格式命令  a.查找目录下所有的cpp文件并转换编码格式,生成的新文件后缀名是cpplgnn(与原cpp文件区分开,可自定义)  find /Users/apple/Mac_WKY/turboedit/tags/v1.1.3 -name "*.cpp" -exec sh -c "iconv -f

2014-03-31 11:33:27 4662

转载 Mac 环境变量

最近使用苹果笔记本,下载了一个rar解压缩的软件,是命令行程序,得加入到系统的环境变量中。网上搜了一下,需要添加到~/.bash_profile文件中,但是看了一下,我电脑上并没有这个文件,但是有一个~/.profile(这些文件都是隐藏文件,通过ls -a才能查看到)文件,在这个文件里面添加:export PATH=/Users/apple/apps/rar:$PATH这句话是典

2014-03-28 17:39:49 616

转载 如何判断一个程序是C编译的还是C++编译的

如果编译器在编译cpp文件那么__cplusplus   就会被定义   如果是一个c文件在被编译那么__STDC__就会被定义__STDC__是预定义宏。当它被定义后,编译器将按照ansic标准来编译你的c程序。ANSIC标准定义了以下6种可供C语言使用的预定义宏:         __LINE__                       在源代码中插入当前源代码行号  

2014-03-26 11:24:41 3232

转载 SVN

SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说.首先来下载和搭建SVN服务器.现在Subversion已经迁移到apache网站上了,下载地址:http://subversion.apache.org/packages.html这是二进制文件包的下载地址,你可在左侧的导航栏找到源代码,文档的下载地址.wi

2014-03-25 23:31:12 422

转载 打印机API

AbortDoc 取消一份文档的打印AbortPRinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 AddMonitor 为系统添加一个打印机监视器 AddPort 启动“添加端口”对话框,答应用户在系统可用端口列表中加

2014-03-21 09:45:37 5412 1

Poco库源码

Poco是一个开源的,用于简化和加速C++开发,面向网络和移植的C++库集。

2012-10-31

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除