自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (2)
  • 收藏
  • 关注

原创 大话设计模式——建造者模式

1.建造者模式(Builder),又叫生成器模式,它是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的比奥斯。如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。2.建造者模式(Builder)结构图  3.建造者模式主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部

2013-04-30 16:06:01 1149

原创 大话设计模式——装饰模式

装饰模式:动态地给一个对象添加一些额外的职责。优点:把类中的装饰功能从类中搬移出去,这样可以简化原有的类。有效地把类的核心功能和装饰功能区分开了。解决的问题:已经开发完毕的对象,后期由于业务需要,对旧的对象需要扩展特别多的功能,这时候使用给对象动态地添加新的状态或者行为(即装饰模式)方法,而不是使用子类静态继承。         装饰模式是为已有功能动态地添加更多功能的一种

2013-04-28 12:44:18 997 2

原创 大话设计模式——简单工厂模式

简单工厂模式解释:        简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式的UML图:        简单工厂模式中包含的角色及其相应的职责如下:

2013-04-27 16:31:59 755

转载 大话设计模式——单件模式

一、开篇       其实我本来不是打算把系统架构中的一些设计模式单独抽出来讲解的,因为很多的好朋友也比较关注这方面的内容,所以我想通过我理解及平时项目中应用到的一些常见的设计模式,拿出来给大家做个简单讲解,我这里只是抛砖引玉,如果某个地方讲解的不正确或者不详细,请大家批评指出。园子里面的很多的大牛写的设计模式都非常的经典,我这里写可能有点班门弄斧的感觉,不过我还是决定把它写出来,希望能对

2013-04-24 10:44:06 1330

原创 Struts2 验证框架不起作用的几种可能

Struts2 验证框架不起作用的几种可能 1. 命名是否符合约定: -validation.xml --validation.xml 2.   validation.xml的标签是否正确,比如是否关闭所有标签,是否多一个关闭标签等。注意:这方面错误没有任何提示, 只是验证不起作用。 3.   fieldName 命名是否和jsp以及 action中的属性一致 如:    

2013-12-19 16:19:37 972

转载 SPRING 整合STRUTS2

SPRING 整合STRUTS2Struts 2框架整合Spring很简单,下面是整合的步骤。(1)复制文件。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。(2)配置struts.obj

2013-12-06 17:10:58 507

转载 [转]Struts2.3 + Spring3.2 整合

首先是Struts2.3整合Spring3.21、新建一个web工程(这个就不说了)2、添加Struts2.3把Struts开发所需的jar复制到工程的lib文件中。开发struts必须包如下: 3、创建action类声明:整个示例只有一个简单的用户登录。本例中的action类名为 LoginAction,该类中的代码如下: [java] vie

2013-12-06 16:59:59 537

原创 STL容器总结

一. 种类:标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串非标准关联容器hash_set、hash_multiset、hash_map和hash_multimap。几种标准非STL容器,包括数组、bits

2013-09-12 14:52:01 758

转载 多重继承构造函数执行顺序

class 派生类名:继承方式1 基类名1,继承方式2 基类名2,....{   //派生类成员定义};对每个基类可以用不同的继承方式,默认继承方式为private。      在多重继承中,派生类的构造函数与单继承下派生类构造函数相似,它必须负责该派生类所有基类构造函数以及对象成员(如果有的话)构造函数的调用。同时,派生类的参数必须包含完成所有基类、对象成

2013-08-21 18:39:23 802

转载 类中特殊成员变量的初始化

有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.       常量型成员变量b.       引用型成员变量c.        静态成员变量d.       整型静态常量成员变量e.       非整型静态常量成员变量 对于常量型成员变量和引用型成员变量的初始化,必须通过构

2013-06-20 16:23:37 523

转载 虚函数中的析构函数

析构函数执行时先调用派生类的析构函数,其次才调用基类的析构函数。如果析构函数不是虚函数,而程序执行时又要通过基类的指针去销毁派生类的动态对象,那么用delete销毁对象时,只调用了基类的析构函数,未调用派生类的析构函数。这样会造成销毁对象不完全。#include#includeclass CPerson{public:    virtual ~CPerson();

2013-06-20 09:26:36 493

原创 QT 保存对话框,新建QFileDialog方式

QT在学习的过程中总是遇到各种问题,没有人解答,只有自己在研究并且在网上搜索一些资料,从初学到现在入门,一直都是这样走过来的,虽然走得很艰难,但是每一个阶段都会有所收获,最近在做一个图片浏览模块的功能,需要实现一个图片修改以后把图片另存为的功能,刚开始觉得挺麻烦,查找资料的时候也觉得很繁琐,很多资料都不是很详细,花费了我两天的时间我才将这个功能给实现了,到最后发现这个功能实现实际很简单,知识自己不

2013-06-09 15:26:53 2398

原创 Select函数

概况select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组, 每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他 文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成, 当调用select()时,由内核根据IO状态修改fd_set的内容,由此来通知执 行了select()的进程哪一Socket或文件可读。阻塞式I/O

2013-06-08 16:22:34 692

转载 unix网络编程之基本套接口编程

IPv4套接口地址:“网际套接口地址结构”通用套接口地址结构:套接口函数被定义为采用指向通用套接口地址结构的指针,这要求对这些函数的任何调用都必须将指向特定于协议的套接口地址结构的指针类型转换成指向通用套接口地址结构的指针:套接口地址结构的比较:值-结果参数:当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,

2013-06-04 10:14:35 665

原创 圆圈中最后剩下的数字----Joseph环

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:我们完全可以用计算机来模拟上述过程,每找到一个要删除的数,需要扫描m次,总共删除n-1个数,所以总得扫描次数为m*(n-1)。这是一个平方级的

2013-06-03 14:12:18 799

转载 关于glew.h / glut.h引用

在OpenGL编程中,使用glMultiTexCoord2f( GL_TEXTURE0+i, x, y ); 你会发现这个函数都没有定义的,以及GL_TEXTURE0,这个常量。因为在vc编译器中,OpenGL的版本是1.1,版本比较落后,下个 glew库就可以了。安装的步骤,与glut一模一样,将dll动态链接库放在c:/WINDOWS:/system32;头文件,可以搜索一下g

2013-05-20 15:42:22 940

转载 #、##和__VA_ARGS__

1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incldue #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(

2013-05-02 10:20:43 451

转载 在C++使用接口

面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套类),但我们更愿意看到一个诸如Interface的东西。下面就介绍一种解决办法。首先我们需要一些宏://// Interfaces.h//#define Interfac

2013-04-27 20:11:15 922

转载 为什么C++编译器不能支持对模板的分离式编译

为什么C++编译器不能支持对模板的分离式编译首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win32),后者拥有PE(Portable Executable,即windows可执行文件)文件格式,并且本身包含的就

2013-04-27 16:05:53 504

原创 OpenGL运用辅助库创建规则几何对象

辅助类分类:1)窗口初始化函数2)窗口处理和事件处理函数3)定义场景绘制循环函数4)三围物体绘制函数5)颜色索引表装入函数6)空闲事件处理函数下面设计了一个程序,该程序尽可能涵盖辅助库的所有函数。该程序实现的功能是:定义键盘的功能,0~9及a分别表示选择11种基本形体的一种进行绘制;定义鼠标的功能为:左键按下表示选择实心显示模式,右键按下表示选择网状显示模式;空闲事

2013-04-22 19:24:31 911

转载 安装OpenGL(二)

分两部分: (一)  下载glut,并将其放置到适当的位置(二) 进行vs2005项目属性配置第一部分,转自参考网站: http://muggleyoung.blog.hexun.com/22800074_d.html OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。OpenGL命

2013-04-22 16:34:24 738

原创 win7和VS2010下配置OpenGL的方法

glut下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zipglut.h  ---> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\glglut.dll,glut32.dll ---> C:\Windows\SysWOW64

2013-04-22 15:08:56 856

转载 进程介绍6:进程的各种标识

本文将介绍进程的:1.进程的用户标识号2.进程标识号进程的用户ID    Linux/Unix进程涉及到三类用户ID:      1、实际用户ID(real user id,RUID):为该进程的的创建者的用户ID,也可以说是进程的执行者。该ID仅root用户可以修改;      2、有效用户ID(effective user

2013-04-19 15:10:56 1413

原创 从1到n的正数中1出现的次数

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。利用动态规划的思想,每次往前进行增加。代码如下:#includeusing namespace std;int Countdatanum(int n){ int Data[10] = {0}; int i =

2013-04-17 22:17:01 477

原创 判断出栈序列是否正确

题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序思路如下:pop的数字正好是栈顶数字,直接pop出栈即可;如果希望pop的数字目前不在栈顶,我们就到push序列中还没有被push到栈里的数字中去搜索这个数字,并把在它之前的所有数字都push进栈。如果所有的数字都被push进栈仍然没有找到这个数字,表明该序列不可能是一个po

2013-04-17 16:54:51 1206

原创 流式套接字客户端/服务器编程

此例子将利用上一篇介绍的套接字基础概念实现一个最基本的流式套接字客户端/服务器通信程序。在该程序中,客户端和服务器将按照如下步骤交互:1)客户端向服务器发出日期请求字符串,如%D%Y%A%T等2)服务器从网络接收到日期时间请求字符串后,根据字符串格式生成对应的日期时间值返回给客户端为了简化程序美图出套接字变成的关键内容,该实例略去了对请求字符串进行合法的校验的处理。服务器端程序:

2013-04-17 10:15:44 1880

原创 十道海量数据处理面试题与十个方法大总结

第一部分、十道海量数据处理面试题  1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多

2013-04-16 09:42:46 525

转载 进程介绍(一)

这篇文章介绍的内容包括1.Linux进程--进程标识号2.进程控制--进程创建1.Linux进程--进程标识号进程(Process)是一个程序在其自身的虚拟地址空间中的一次执行活动。多个程序并发执行,可以提高系统的资源利用率和吞吐量。进程和程序:程序只是一个静态的数据和指令集合,而进程是一个程序的动态执行过程,具有生命周期,是

2013-04-15 16:51:58 566

转载 格式化I/O

printf(格式控制,输入表列)例:printf("%d%d",a,b)(1)d格式符:输出一个有符号的十进制整数(2)c格式符:输出一个字符(3)s格式符:输出一个字符串(4)f格式符:输出实数,有几种用法:          A.基本型(%f):实数中的整数部分全部输出,小数部分输出6位;          B.指定数据宽度和小数位数(

2013-04-15 15:57:14 504

转载 fork()详解

在Linux系统下学习一个系统函数最好的方法就是阅读其源码,首先,给出fork函数的源码[cpp] view plaincopy/* *  linux/kernel/fork.c *                                //--fork()用于创建子进程 *  (C) 1991  Linus Torval

2013-04-15 15:47:32 723

转载 DSP C6000 keywords 关键字总结

extern:extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。 const: 可以用const定义一些变量或数组,以确保它的值不被改变。例:int *const p = &x;  定义一个常量指针p给变量int。      const int *q

2013-04-15 08:58:07 661

原创 QMenu中Checkbox的实现

QActionGroup* action_group = new QActionGroup( this );ui->action1->setCheckable(true);ui->action2->setCheckable(true);ui->action3->setCheckable(true);ui->action1->setActionGroup(action

2013-04-14 20:48:17 4866

转载 Linux目录文件操作

1.stat  获取文件属性       #include        #include        #include        int stat(const char *filename,struct stat *buf);       int fstat(fd, struct stat *buf);       int lstat(con

2013-04-12 21:23:51 474

转载 Socket通信原理和实践

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?

2013-04-12 20:16:01 491

原创 斐波纳契数列

斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1960年代起出版了《斐波纳契数列》季刊,专门刊载这方面的研究成果。拓展:一个台阶总共有n级

2013-04-11 18:33:43 804

转载 覆盖 多态 重载 隐藏

先介绍下动态绑定,多态性,函数覆盖,这3个概念是一致的,不同的书上有不同的叫法,但是他们的本质是一样的。都体现了面向对象编程语言的一个重要的特点。                  识记关键词:(动态绑定,多态性,函数覆盖),基类,派生类,基类指针(引用),虚函数实现手段:在C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,

2013-04-09 14:52:01 560

原创 区分多态与重载

多态是基于对抽象方法的覆盖来实现的,用统一的对外接口来完成不同的功能。重载也是用统一的对外接口来完成不同的功能。那么两者有什么区别呢?重载,是指允许存在多个同名方法,而这些方法的参数不同。重载的实现是:编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。多态:是指子类重新定义父类的虚方法(virtua

2013-04-09 14:20:38 486

原创 单源最短路径Dijkstra算法

Dijkstra算法中设置了一顶点集合S,从源点s到集合中的顶点的最终最短路径的权值均已确定。算法反复选择具有最短路径估计的顶点u∈V - S,并将u加入S中,对u的所有出边进行松弛,在下列算法实现中,用到了顶点的最小优先队列Q,排序关键字为顶点的d值。d为实时权值。代码如下:#include#includeusing namespace std;#defi

2013-04-09 10:43:53 1436 1

转载 Prim算法与Dijkstra算法的区别

在图论中,Prim算法是计算最小生成树的算法,而Dijkstra算法是计算最短路径的算法。二者看起来比较类似,因为假设全部顶点的集合是V,已经被挑选出来的点的集合是U,那么二者都是从集合V-U中不断的挑选权值最低的点加入U,那么二者是否等价呢?也就是说是否Dijkstra也可以计算出最小生成树而Prim也可以计算出从第一个顶点v0到其他点的最短路径呢?答案是否定的,否则就不必有两个算法了。

2013-04-09 09:19:11 706

原创 求Zigzag数组

面试题:输入N,求一个N*N矩阵,规定矩阵沿45度线递增,形成一个zigzag数组。#include#include#includeusing namespace std;void CreateZigzag(int *zigzag,int **data,int n) //data数组是N*N的数组,其中数据需要以Zigzag存入数组,所以zigzag的数组长度为N*N{ //i

2013-04-08 16:43:06 572

Windows网络编程技术

《Windows网络编程技术》通过应用实例引入VC++集成开发环境下的网络编程技术。全书突出网络编程技术应用背景,发掘编程技术与网络应用开发的逻辑联系。内容主要包括Windows网络编程基础、单机资源共享的应用编程、基于NetBIOS网络编程、基于WinSock网络编程、直接网络编程和高级网络编程等。

2013-06-24

Windows程序设计第五版

作为Windows开发人员的必备参考,涵盖基础知识和中高级主题,全面地介绍了Windows程序设计所涉及的细枝末节,旨在帮助读者从高屋建瓴的角度,建立完整的知识体系,为以后的职业生涯奠定良好的基础。全书共3部分23章。第1~12章着重介绍基础知识,第13~18章的主题为图形,第19~23章涉及更多高级主题。

2013-05-28

空空如也

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

TA关注的人

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