自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

转载 第1章 UML基础:类的关系

1. 类的关系1.1 继承和实现:继承表示有父子关系 1.2 依赖:(use–a),表示一个类要使用(use)另一个类。(1)类图 (2)三种依赖方式:函数参数或返回值、局部变量和静态成员变量或函数class C21{public: //1、使用形参或返回值发生依赖关系 C22 test(C22 theC22); //2、使用局部

2018-01-20 17:24:58 290

转载 行为型模式—状态模式

1. 状态模式(State Pattern)的定义(1)定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。  ①状态和行为,它们的关系可以描述为“状态决定行为”  ②因状态是在运行期被改变,行为也会在运行期根据状态的改变而改变。看起来,同一个对象,在不同的运行时刻,行为是不一样的,就像是类被修改了一样。(2)状态模式的结构和说明   ①Conte

2018-01-20 16:59:14 572

转载 设计模式之23种常用模式

在常用的23种设计模式中,根据设计模式的功能,我们又可以把这23个设计模式分为三大类:创建类模式,结构类模式,行为类模式;创建类模式工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一类,使一个类的实例化 延迟到其子类;建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;抽象工厂模式,为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它

2018-01-20 16:22:20 239

原创 一个BYTE转16进制字符串的函数

std::string byteToHexStr(unsigned char byte_arr[], int arr_len){ std::string hexstr; for (int i=0;i<arr_len;i++) { char hex1; char hex2; int value=byte_arr[i]; //直接将unsigned char赋值给整型的值,强制转换

2018-01-19 17:10:06 398

转载 原码, 反码, 补码 详解

作者:张子秋出处:http://www.cnblogs.com/zhangziqiu/本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前,

2018-01-18 16:59:50 145

转载 C++标准库与STL的关系

STL即标准模板库(Standard Template Library),它包括五大类组件:算法、容器、迭代器、函数对象、适配器。STL是C++标准库的一部分,但不是全部。C++标准库是std名字空间中的所有内容,就是那些不带.h的头文件,如、。如std::string,及IO流都不属于STL,但它们是STL兼容的,可以应用迭代器,算法等。虽然std::string和IO流也是模板

2017-06-02 17:45:40 603

转载 c运行库、c标准库、windows API都是什么玩意

C运行库和C标准库的关系C标准库,顾名思义既然是标准,就是由标准组织制定的。是由“美国国家标准协会(American National Standards Institute,ANSI)”为了规范C语言库而制定的标准。在最初,各个大学各个公司使用的C语言库都不尽相同,造成相互移植非常困难,在这个背景下,制定了这个标准。C运行库,是和平台相关的,即和操作系统相关的。它由不同操

2017-06-02 17:36:08 644

转载 WINDOWS内核对象

载。WINDOWS内核对象 一.前言 Windows中有很多像进程对象、线程对象、文件对象等等这样的对象,我们称之为Windows内核对象。内核对象是系统地址空间中的一个内存块,由系统创建并维护。内核对象为内核所拥有,而不为进程所拥有,所以不同进程可以访问同一个内核对象。  二.内核对象结构 每个对象都有对象头和对象体组成。所有类型的对象

2017-05-31 15:57:27 239

转载 NodeJS写日志_Log4js使用详解

今天和大家分享一下NodeJS中写日志的一个常用第三方包:Log4js.        跟随主流Blog特色,先简单介绍下Log4js的基本信息.介绍Log4js之前,需要先说一下Log4***,Log4***是由Apache提供的多平台下多语言下日志书写扩展包,目的很简单就是使日志书写更加方便简洁,同时对不同的业务日志能够进行灵活的分文件记录,同时也包含着详细的等级配置,为之后分级输

2016-08-30 10:54:32 1842

转载 Node.js开发入门—Buffer用法详解

Node.js中有一个Buffer类,必须要介绍一下,因为我们在使用Node.js做服务端开发时,http、tcp、udp、文件io等等类型的操作,都会用到Buffer,离开它基本没办法玩儿下去。Buffer是什么JavaScript里的String对象,存储的是字符串,而且是Unicode编码的。Buffer代表一个缓冲区,存储二进制数据,是字节流。我们在网络传输时,就传输的

2016-08-23 11:10:51 311

转载 Node.js读写中文内容文件操作

由于Node.js仅支持如下编码:utf8, ucs2, ascii, binary, base64, hex,并不支持中文GBK或GB2312之类的编码,因此如果要读写GBK或GB2312格式的文件的中文内容,必须要用额外的模块:iconv-lite1、安装模块:npm install iconv-lite2、演示代码,把下面的代码复制到一个文件中,假设是ch.js(注意:j

2016-08-19 14:23:36 610

转载 在Node.js中使用TCP套接字编程

译自http://www.hacksparrow.com/tcp-socket-programming-in-node-js.html想知道如何在NodeJS中使用socket编程?在NodeJS中有三种socket:1. TCP,2. UDP,3. Unix域套接字,本文主要介绍NodeJS中TCP的基本编程知识。你可以创建两种类型的TCP套接字:1. 服务端,2. 客户端。服务端TCP

2016-07-28 10:01:59 307

转载 软件架构设计经典书籍有哪些

 1.软件架构设计作者: 温昱内容简介:本书紧紧围绕“软件架构设计”这一主题,立足实践解析了软件架构的概念、阐述了切实可行的软件架构设计方法、提供了可操作性极强的完整的架构设计过程。另外,本书从思维方式的突破、面向对象设计、UML建模、过程与管理等关键过渡环节,为广大程序员的成长提供了切中肯綮的指导。本书可作为计算机软件专业本科生、研究生和软件工程硕士的软件架构设计教材,也可作为软

2015-12-03 14:10:44 4693

转载 C++学习-多继承和虚基类

本文主要是讨论类的多继承,多继承的方式可使派生类具有多个基类的特性。以下是一个继承关系,C从A和B基类中派生出来,在派生类C中,包含了基类A与基类B的成员,还有C类自己的成员。在上述关系图中,可以看到,类继承的结构很清晰,但在很多时候,有可能有以下继承关系:在这幅类的继承关系图中可以看到,B1和B2分别继承于A,再由B1和B2派生出C,这关系看起来很简单,但在内

2015-11-18 10:29:21 1184

转载 关于Big Endian 和 Little Endian

一、字节序来自:http://ayazh.gjjblog.com/archives/1058846/谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是lit

2015-11-09 22:37:11 270

转载 深入理解计算机各种类型大小(sizeof)

// Example of the sizeof keyword   size_t  i = sizeof( int );      struct align_depends {       char c;       int i;   };   size_t size = sizeof(align_depends);  // The value of

2015-11-05 15:16:47 531

转载 C++成员函数的存储方式

用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元,如图8.4所示。图8.4 能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用这个公用的函数代码。如图8.5所示。

2015-11-05 14:28:12 325

转载 c++类对象的内存模型

c++类对象的内存模型C++类对象内存结构    首先介绍一下C++中有继承关系的类对象内存的布局:在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。   对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变量)。 之后是子类自己的成员变量数据。对于子类的子类,也是同样的原

2015-11-05 14:15:13 359

转载 位图BitMap图像的读取与存储

做图像处理时的源文件一般要用无损的图像文件格式,位图(BitMap)是windows系统下可存储无压缩图像的文件格式。要实现位图文件的读取和存储,首先要明白位图文件的的存储数据结构。位图文件由四部分依序组成:BITMAPFILEHEADER,BITMAPINFOHEADER,调色板,Image Data。1)BITMAPFILEHEADER结构的长度是固定的14个字节,描述文件的有关信息。其数

2015-09-18 14:09:28 693

转载 多字节与UTF-8、Unicode之间的转换 .

// 多字节编码转为UTF8编码  bool MBToUTF8(vectorchar>& pu8, const char* pmb, int32 mLen)  {   // convert an MBCS string to widechar    int32 nLen = MultiByteToWideChar(CP_ACP, 0, pmb, mLen, NULL, 0);      W

2015-09-07 12:01:34 638

转载 比较与整理GDI与GDIPlus抓取、合并和保存位图的方法

/**@defgroup COMPARE_GDI_GDIPlus@brief    比较与整理GDI与GDIPlus在抓取、合并和保存位图之间的不同@author   华仔103@date     2009-01-14@{\*/在stdafx.h文件中定义#ifndef _UNICODE#define _UNICODE#endif#ifndef UNIC

2015-09-07 11:08:29 955

转载 做葡萄酒全过程

又到葡萄成熟的时候了,我这里介绍做葡萄酒的全过程,做法十分简单,只要你有耐心。做葡萄酒、欣赏葡萄发酵的过程、喝葡萄酒,都是一种享受。你仔细地阅读我的介绍,认真地观看照片,有兴趣就试着做一次。(按去年的材料价格,每斤葡萄酒成本3元)原料只有两种材料:葡萄,冰糖,再不加任何东西.(山葡萄比家葡萄好,冰糖比白糖好,后两种东西也可以做,但酒的质量差一点,山葡萄做出的是真正的红酒).       葡

2015-08-31 22:10:42 1040

转载 从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起

以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作得好好的,所以感觉这好像一句废话。最近的项目中,需要在DLL里使用MFC生成界面,这才发现一旦资源放在不同的动态库里,而且还和多线程搅和在一起的时候,事

2015-08-21 12:03:37 408

转载 如何在动态库中使用对话框资源(转) .

在CSDN论坛上最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32DLL和MFC DLL两个方面来分析并解决这个问题。1.Win32 DLL    在Win32DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialo

2015-08-20 17:05:29 484

转载 Windows GDI与GDI+

BMP图像像素读取的另一种方法 色彩空间转换代码Windows GDI与GDI+  2013-04-16 17:53:53|  分类:VC++图像处理 |  标签:gdi  gdi+  |举报|字号大中小 订阅      用微信  “扫一扫”将文章分享到朋友圈。 

2015-08-07 15:01:07 364

转载 VTK与ITK的详细安装指南

1. 说明:本文来自一个付费下载文档,好像是一本图书的第一章的部分内容, 感觉比网上很多指南写的要详细, 特整理出来和大家分享,向原作者表示感谢!                  2.获取安装资源(1)CMake安装资源CMake 是个跨平台的自动化建构软件,用于对于VTK、ITK的编译,可以在http://www.cmake.org/cmake/resources/so

2015-08-05 10:51:25 682

转载 CMake使用教程 .

CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者c

2015-08-05 10:20:15 350

转载 Android布局文件layout.xml的一些属性值

第一类:属性值 true或者 falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alig

2015-06-25 14:15:46 399

转载 Android入门:Intent入门

一、Intent与Activity应用 0.创建新的Activity步骤 在应用中创建新的Acitivity很常见;步骤1:创建一个class继承Activity 步骤2:在Android-manifest.xml中添加元素 比如创建了一个名为SubActivity的Activity,则需要声明如下:[html] view plaincopypr

2015-06-15 15:43:16 329

转载 Android开发之onClick事件的三种写法

package a.a;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class AActivity extends

2015-06-11 20:23:33 305

转载 socket I/O模型 之 select

选择(select)模型是Winsock中最常见的 I/O模型。核心便是利用 select 函数,实现对 I/O的管理!利用 select 函数来判断某Socket上是否有数据可读,或者能否向一个套接字写入数据,防止程序在Socket处于阻塞模式中时,在一次 I/O 调用(如send或recv、accept等)过程中,被迫进入“锁定”状态;同时防止在套接字处于非阻塞模式中时,产生WSAEWOULD

2015-06-04 13:41:17 261

转载 揭开Socket编程的面纱

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.         什么是TCP/IP、UDP?2.         Socket在哪里呢?3.         Socket是什么呢?4.         你会使用它们吗?什么是TCP/IP、UDP?         TCP/IP(Trans

2015-06-03 15:38:00 218

转载 Windows Socket 最大连接数

Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。Windows 下单机的TCP连接数受多个参数影响:最大TCP连接数[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] TcpNumConnections = 0x00fffffe (Default

2015-06-03 15:11:16 463

转载 完成端口(Completion Port)详解

作者:By PiggyXP(小猪)  ,来自http://blog.csdn.net/piggyxp/article/details/6922277前 言         本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚…..        这篇文档我

2015-05-19 09:47:59 360

转载 C++内存管理

[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存

2015-05-18 13:56:00 282

转载 WINDOWS操作系统中可以允许最大的线程数

默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。 你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程。 如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程。 即使物理内存再大,一个进程

2015-05-18 10:33:55 456

转载 多核CPU开几个线程最好

影响最佳线程数的主要因素:1、IO2、CPU根据公式:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量一般来说是IO和CPU。IO开销较多的应用其CPU线程等待时间会比较长,所以线程数量可以开的多一些,相反则线程数量要少一些,其实有两种极端,纯IO的应用,比如proxy,则线程数量可以开到非常大(实在太大了则需要考虑线程切换的开销)

2015-05-18 10:03:37 5605

原创 字符串类的构造函数,拷贝构造,赋值函数的实现

1.MyString.h//MyString.h#pragma onceclass String{ public:     String(const char *str = NULL);//普通构造函数     String(const String &other);//拷贝构造函数    ~String(void);//析构函数     String & op

2015-05-13 17:28:10 998

转载 VS2013中安装配置和使用Boost库

一、Boost安装1.1 Boost官网下载Boost最新版Version 1.55.01.2将下载压缩包解压到本地解压后可看到文件夹下有个bootstrap.bat文件。1.3打开cmd命令窗口,运行bootstra.bat文件执行以下命令,具体根据自己的环境略有变化。最主要的目的是我们要运行bootstrap.bat文件执行完后,结果如下:

2015-05-11 18:17:02 354

转载 shared_ptr

shared_ptr是一个最像指针的"智能指针",是boost.smart_ptr库中最有价值、最重要的组成部分,也是最有用的,Boost库的许多组件--甚至还包括其他一些领域的智能指针都使用了shared_ptr。抱歉,我实在想不出什么更恰当的词汇来形容它在软件开发中的重要性。再强调一遍,shared_ptr非常有价值、非常重要、非常有用。 shared_ptr与scoped_ptr一样

2015-05-11 18:14:41 261

空空如也

空空如也

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

TA关注的人

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