自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tanhaiyuan

博客园博客 http://www.cnblogs.com/controlfate/

  • 博客(158)
  • 收藏
  • 关注

转载 gfg

gfgfdg

2015-07-03 21:59:35 1054 1

原创 C/C++编译过程(gcc)

1  配置gcc下载:     首先下载mingw,解压。配置环境变量:     系统变量中找到Path,在Path中添加    D:\Program Files\MinGW\bin;测试:      运行cmd,输入gcc -v就会看到其版本,否者,就配置没成功。2  C/C++编译过程程序名 hello.c代码

2014-01-03 15:21:29 1394

原创 6.7 Remove Assigments to Parameters(移除对参数的赋值)

概括代码对一个参数进行赋值。以一个临时变量取代该参数的位置。      例子int discount(int inputVal, int quantity, int yearTodate){    if(inputVal > 50)        inputVal = -2;}重构后int discount(int i

2013-11-28 17:28:11 1243

原创 6.6 Split Temporary Variable(分解临时变量)

概括         某个临时变量被赋值超过一次,且它既不是循环变量,也不是被用于收集计算结果。         针对每次赋值,创造一个独立,对应的临时变量。      例子double temp = 2 * (_height + _width);System.out.println(temp);temp = _height * _width;System.

2013-11-28 17:27:16 1150

原创 6.5 Introduce Explaining Variable(引入解释性变量)

概括        你有一个复杂的表达式。         将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名来解释表达式用途。      例子if((platform.toUperCase().indexOf("MAC") > -1) &&    (browser.toUperCase().indexOf("IE") > -1) &&    wa

2013-11-27 14:10:14 1266

原创 6.4 Replace Temp with Query(以查询取代临时变量)

概括以一个临时变量保存某一个表达式的运算结果。将这个表达式提炼到一个独立函数汇总。将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可被其它函数使用。      例子double basePrice = _quantity * _itemPrice;if(basePrice > 1000)     return basePrice*0.95;

2013-11-27 13:44:38 1051

原创 6.3 Inline Temp(内联临时变量)

概括一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构方法。将所有对该变量的引用替换为对它赋值的那个表达式本身。    例子double basePrice = anOrder.basePrice();return (basePrice > 1000)重构之后return (anOrder.basePrice() > 1000)

2013-11-27 13:22:25 1549

原创 6.2 Inline Method(内联函数)

概括一个函数的内部代码与名称同样清晰易懂。在函数调用点插入函数本体,然后移除该函数。   例子int getRating(){    return (moreThanFiveLateDeliveries()) ? 2 : 1;}boolean moreThanFiveLateDeliveries(){    return _numberOfLateD

2013-11-27 13:20:41 1081

原创 6.1 Extract Method(提炼函数)

概括有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。   例子void printOwing(double amount){    printBanner();    //print details    System.out.println("name:" + _name);    System.out.p

2013-11-27 13:18:20 1000

原创 策略模式 状态模式 比较

策略模式类图状态模式类图                  类图是一样的。但是这两个模式的差别在于它们的意图。        状态模式中,我们将一些行为封装在状态对象中,context的行为随时可以委托到那些状态对象中的一个。context的内部状态在状态对象集合范围内变化,context的行为也会随着内部状态变化而变化。但是context的客户端对于状态对象的了解

2013-11-26 13:26:31 1398

原创 模板方法模式(Template method)

意图定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。应用场景uu类图参与者AbstractClass定义抽象的原语(PrimitiveOperation),具体的子类将重定义它们以实现一个算法的各步骤实现一个模板方法,定义一个算法骨

2013-11-25 11:21:39 905

原创 外观模式(Facade)

意图为子系统中的一组接口提供一个一致的界面。定义了一个高层接口,这个接口使得这一子系统更加容易使用应用场景实现平台无关性。跨平台跨库的函数调用。同一个接口去读取不同的资源。硬件自动识别处理系统。类图参与者Facade知道哪些子系统类负责处理请求将客户的请求代理给适当的子系统对象Subsystem

2013-11-21 17:22:05 1145

原创 组合模式(Composite)

意图将对象组合成树形结构以表示"部分-整体"的层次结构。使得用户对单个对象和组合对象的使用更具有一致性。类图 参与者Component为组合中的对象声明接口在适当的情况下,实现所有类共有接口的缺省行为。声明一个接口用于访问和管理Component的子组件(可选)在递归结构中定义一个接口,用于访问一个父部

2013-11-21 17:19:45 919

原创 装饰模式(Decorator)

意图动态的给一个对象添加一些额外的职责。Decorator模式添加功能比生成子类更为灵活。类图参与者Component定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent定义一个对象,可以个这个对象添加一些职责Decorator维持一个指向Component对象的指针,并定义一个与Compo

2013-11-21 17:17:31 1024

原创 代理模式(Proxy)

意图 为其他对象提供一种代理以控制对这个对象的访问。类图参与者Proxy:Subject:定义RealSubject和Proxy的共用接口。RealSubject:定义Proxy所代表的实体作用:代理根据其种类,在适当的时候向RealSubject转发请求代码#include iostream>using name

2013-11-21 17:14:30 871

原创 桥接模式(Bridge)

意图将抽象部分与它的实现部分分离,使它们都可以独立的变化应用场景类图参与者Abstraction定义抽象的接口。维护一个指向Implementor类型对象的指针。RedefineAbstraction扩充由Abstraction定义的接口Implementor定义实现类的接口,该接口可以与Abstracti

2013-11-21 17:11:33 1071

原创 适配器模式(Adapter)

意图将一个类的接口转换成客户希望的另一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作类图对象适配器类适配器参与者Target: 定义Client使用的特定领域的接口Client :与符合Target接口的对象协作Adaptee:定义一个已存在的需要适配的接口

2013-11-21 17:09:33 987

原创 知识管理系统

一 :概述         知识管理中, 一般是设定学习目标, 有针对性的收集材料,然后学习更有效;另外如见到以前总结过的内容, 并对自己有启发的也可以保存, 以修改以前写过的文章;         而学习目标是什么?其实大多数目标都为时间管理GTD中的一个项目, 或一个任务;比如学习html;而有些虽然直接目标并不是为了学习, 比如用qt写出来一个软件, 但是在写软件前肯定要学习

2013-11-21 17:07:24 1090

原创 设计模式学习阶段

照着书上的例子,将此模式记住。一字一字的读模式意图,同时想模式的实现, 更深的领悟发现不同模式的相同点发现不同模式相同点的不同点

2013-11-21 16:55:34 843

原创 单例模式(Singleton)

http://www.cnblogs.com/wangjq/archive/2012/06/28/2561250.html  设计模式学习笔记-单例模式http://www.cnblogs.com/ykt/archive/2011/11/24/2261251.html  [读书笔记] 单例模式的几种实现方式《漫谈设计模式》一: 概述保证一个类仅有一个实例

2013-11-21 16:52:08 803

原创 建造者模式

一: 概述 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。通俗点说: 二  演化过程方法1: 要保证一个类仅由一个实例,可以在调用处判断类对象是否为空, 如果空就创建对象,否则就不创建。 三: 模式解读1 类图 2 要点参与者:Builder  为创建一个

2013-11-21 16:43:42 773

原创 状态模式

意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。应用场景uu类图参与者Context定义客户感兴趣的接口维护一个ConcreteState子类的实例,这个实例定义当前状态State(状态)定义一个接口以封装与Context的一个特定状态相关的行为ConcreteS

2013-11-21 16:41:30 742

原创 ubuntu 12.04下查看txt中文乱码解决办法

出现乱码, 是因为windows和linux默认编码不一样的原因, 因此,修改一下编码就可以;打开终端:gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT', 'UTF-16']"gsetti

2013-01-15 22:14:25 992 1

原创 hdu 2546 饭卡(简单DP)

简单, 但是需要细心         思路一: 首先判断m是否大于等于5                         先取出来最贵的, 对其他的用m-5进行01背包,然后答案就出来了            思路二: 先判断                         因为最贵50元所以对m+50进行DP #include#include#include us

2012-07-28 16:49:44 539

原创 poj 3221 Washing Clothes(分组的0 1背包)

题意:  两个人洗衣服, 每种颜色的衣服有多件, 要求两人只能同时洗相同颜色的衣服, 求洗衣服的最短时间;这道题虽然简单, 但是是很好的一道题,需要多思考一步 分组的0 1背包思路:因为只能同时洗相同颜色的衣服, 因此将不同颜色看为不同的组, 分别求出来每组的最短时间, 其和即为所求;每组最短时间其实就是0 1背包;无语的是, 我在结构体中多加了一个够着函数, 结果一直超时……去掉

2012-07-21 20:59:07 679

原创 hdu Employment Planning(dp 通过DFS写DP)

题意很简单:先用DFS写出来, TL了……#includeusing namespace std;int month;int hcost, sala, fcost;int total, ans;int num[13];int minnum, maxnum;void DFS(int h, int th){ if(th > month) { if(ans>t

2012-06-14 21:01:58 644

原创 linux下电信拨号器

下载地址   http://www.52jsxy.com/download/可以双击安装, 也可以sudo dpkg -i XXX.deb运行: sudo Dial 分别输入用户名和密码

2012-06-10 22:09:20 1342

原创 ubuntu 12.04 lrcShow-X运行出现问题: ImportError: No module named PyQt4.QtGui

直接双击lrcShow-X.py没有反应, 而在终端运行时, 会显示:Traceback (most recent call last): File "./lrcShow-X.py", line 33, in import choosePlayer File "/home/tan/Downloads/lrcShow-X/choosePlayer.py", line 6, in

2012-06-05 00:14:58 3549

原创 百度之星 初赛第二场

A   简单DP#include#includeusing namespace std;#define MAX 100005int main(){ long long n; long long num[MAX], dp[MAX]; cin>>n; for(int i=0; i<n; i++) cin>>num[i];

2012-06-03 12:14:40 2356 2

原创 hdu 1754 I hate it(线段树)

#include#include#includeusing namespace std;struct student{ int left, mid, right; int max;}stu[800000];int score[200001];int max1, max2;void Create(int s, int e, int n){ stu[n].left=s; s

2012-06-01 00:48:02 663

原创 iMindMap 5.3 无法在windows7 64位下启动

启动打印机服务就可以了我的电脑---右键---管理---服务--Print Spooler 双击 点启动就可以

2012-05-30 19:40:14 1622

原创 vim 一键编译运行c++,c,java,python, shell

linux下" F5编译和运行C程序,C++程序,Python程序,shell程序,F9 gdb调试" 请注意,下述代码在windows下使用会报错,需要去掉./这两个字符" 编译和运行Cmap :call CompileRunGcc()func! CompileRunGcc()exec "w"exec "!gcc % -o %<"exec "! ./%<"endfunc

2012-05-30 19:30:20 12471 3

原创 vim括号补全

将下面内容加入  /usr/share/vim/vimrc文件中即可inoremap ( ()iinoremap [ []iinoremap { {}Oautocmd Syntax html,vim inoremap >i| inoremap > =ClosePair('>')inoremap ) =ClosePair(')')inoremap ] =ClosePair(']')

2012-05-30 19:21:58 1306

原创 vim crtl+c 粘贴

在  /usr/share/vim/vimrc文件中添加   source $VIMRUNTIME/mswin.vim这样就可以用ctrl+a, ctrl+v, ctrl+c等快捷键了

2012-05-30 19:15:12 834

原创 hdu 1035 Robot Motion

水题……#includeusing namespace std;int main(){ int row, col, startx, starty; char map[11][11]; int step[11][11]; bool visited[11][11]; int ans1, ans2, temp; while( cin>>row>>col && row&&col )

2012-05-29 21:32:56 607

原创 生成子集

#includeusing namespace std;int visited[101];//arry表示求子集的数组//cur表示搜索当前位置 //n表示数组元素个数 void DFS(int *arry, int cur, int n)//字典序 { for(int i=0; i<cur; i++) if(visited[i]) cout<<a

2012-05-24 16:52:12 804

原创 MFC edit控件换行

在edit中, 换行符是“\r\n”,且无法多次输出;且需要设置:Auto HScroll设置为FALSEMultiline 设置为trueWant return设置为true例如:pWnd->SetWindowText("1234\r\n");pWnd->SetWindowText("6789\r\n");这样只会显示: 6789 //不知道为啥???即无论多

2012-05-21 21:28:25 2765 1

原创 poj2192 hdu1501 Zipper

dp[i][j]表示第一个字符串前i个与第二个字符串前j个字符能否组成第三个字符串前i+j个;                       #include#include#include using namespace std;int main(){ int T; cin>>T; char str1[205], str2[205], str3[505]; int len

2012-05-20 21:11:05 748

原创 安装虚拟机 bochs(编译安装)

首先 cd  文件路径//例如我的  bochs的源文件在  bochs2.5的文件夹, 其路径为/home/tan/下载                  那么就输入: cd  /home/tan/下载/bochs2.5                  然后编译:   ./configure                  再输入:  make

2012-01-07 22:00:29 1014

原创 ./configure权限不够

今天安装软件时, 进入文件夹后, 编译时, 竟然提示“ bash: ./configure: 权限不够 ”,                  解决办法:            chmod +x configure            再输入 ./configure 就就可以了;

2012-01-07 21:51:09 9914 2

空空如也

空空如也

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

TA关注的人

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