摘要: _stdcall在主调用函数中负责压栈,在被调用函数中负责弹出堆栈中的参数,并且负责恢复堆栈。因此不能实现变参函数,参数传递是从右到左。__cdecl在C或C++语言调用中默认的函数修饰_cdecl,由主调用函数进行参数压栈并且恢复堆栈,实参的压栈顺序是从右到左,最后由主调函数进行堆栈恢复。由于主调用函数管理堆栈,所以可以实现变参函数。 阅读全文
posted @ 2012-07-02 21:35 freewater 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1 #ifndef STACK_H 2 #define STACK_H 3 4 #include<stdexcept> 5 #include<string> 6 using namespace std; 7 8 template<typename T> 9 class Stack10 {11 private:12 template<typename T>13 struct Node14 {15 T data;16 Node* next;17 Node(T data,Node* next):data(data),nex... 阅读全文
posted @ 2012-06-25 21:55 freewater 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 写了一个单链表的模板,欢迎大家批评指正。 1 #ifndef LINKEDLIST_H 2 #define LINKEDLIST_H 3 #define DEBUG 4 5 #include<iostream> 6 using namespace std; 7 8 template <typename T> 9 class LinkedList 10 { 11 public: 12 template<typename T> 13 struct Node 14 { 15 T data; 16 Node* next; 1... 阅读全文
posted @ 2012-06-25 21:54 freewater 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1 #ifndef FACTORYMETHOD_H 2 #define FACTORYMETHOD_H 3 4 #include<iostream> 5 using namespace std; 6 7 class Product//should be a pure virtual class. 8 { 9 public:10 Product(){}11 ~Product(){}12 };13 14 class ConcreteProductA:public Product15 {16 public:17 ConcreteProductA()18 {19 ... 阅读全文
posted @ 2012-06-25 15:45 freewater 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式(Decorator Pattern):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比生成子类更加灵活。 1 #ifndef DECORATOR_H 2 #define DECORATOR_H 3 4 #include<iostream> 5 using namespace std; 6 7 class Component 8 { 9 public:10 virtual void operation()=0;11 };12 13 class ConcreteComponent:public Component14 {15 public:16 vo... 阅读全文
posted @ 2012-06-25 13:53 freewater 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1 #ifndef OBSERVER_H 2 #define OBSERVER_H 3 #include<list> 4 #include<iostream> 5 using namespace std; 6 7 class Observer 8 { 9 public: 10 virtual void update()=0; 11 }; 12 13 class Subject 14 { 15 public: 16 virtual void attach(Observer* observer)=0; 17 virtual void detach(O... 阅读全文
posted @ 2012-06-23 11:09 freewater 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 1 #ifndef BSTREE_H 2 #define BSTREE_H 3 #include<cassert> 4 #include<stack> 5 using namespace std; 6 7 template<typename T> 8 class BSTree 9 { 10 public: 11 template<typename T> 12 struct Node{ 13 T data; 14 Node* lchild; 15 Node* rchild; 16 Node* p... 阅读全文
posted @ 2012-06-22 15:52 freewater 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy):定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。[DP]以下为策略模式的实现代码。 1 #include<iostream> 2 using namespace std; 3 4 class Strategy{ 5 public: 6 Strategy(void){} 7 virtual ~Strategy(void){} 8 9 virtual void AlgorithmInterface()=0;10 };11 12 class ConcreteStrategyA:public ... 阅读全文
posted @ 2012-06-22 14:38 freewater 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 从任意起点开始,运行一次BFS,得到一个最远点d1,d1即为直径的一点再运行一次BFS,得到一个最远点d2,则d1~d2为树的直径为什么这样是对的?(1)证明d1是树直径的一点a) 若s在直径d1,d2上,则最后一个点必能搜到d1或d2;因为若搜到最后一个点为v,则直径为vd2,与题意不符 b) 若s不在直径d1,d2上,BFS搜到的最远点为v,d1-d2为直径,根据连通图的性质,路径s-v当中必有一点t1,与路径d1-d2相连.根据d1-d2直径定义 d1d2=d2t2+t2d1,且t2d1>=t2t1+t1v,否则直径为d2-t2-t1-v根据v是BFS搜到的最远点,t1v>= 阅读全文
posted @ 2012-05-06 09:05 freewater 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 脏检查 Session到底是如何进行脏检查的呢?当一个Customer对象被加入到Session缓存中时,Session会为Customer对象的值类型的属性复制一份快照。当Session清理缓存时,会先进行脏检查,即比较Customer对象的当前属性与它的快照,来判断Customer对象的属性是否发生了变化,如果发生了变化,就称这个对象是“脏对象”,Session会根据脏对象的最新属性来执行相... 阅读全文
posted @ 2012-01-05 11:04 freewater 阅读(7362) 评论(0) 推荐(2) 编辑
摘要: change theme on a per-page basis The default theme is passed to the page through a theme variable. To change the theme for a page, use the set tag to change the theme variable. The variable can be ch... 阅读全文
posted @ 2011-12-26 18:15 freewater 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 前一段时间使用Eclipse编写了多个java文件,并加了中文注释。共享给parter时,对方出现了乱码(中文无法显示)。研究发现,原来是文件的字符编码不一致。如果你没有修改过Eclipse的文件编码格式,默认是使用系统默认编码。中文Windows下默认为GB2312(或称GBK)。所以我生成的java源文件采用的是GBK编码。而对方的Eclipse文件编码格式修改成了UTF-8。考虑到以后文件需要共同修改,所以我准备将GBK编码的文件转换成UTF-8编码的文件。但是Eclipse好像没有自带这个功能,听说MyEclipse有。我也懒得上网去找插件。心想不就是字符编码不一样嘛,咱们是程序... 阅读全文
posted @ 2011-12-23 19:07 freewater 阅读(1334) 评论(0) 推荐(0) 编辑
摘要: <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf 阅读全文
posted @ 2011-12-21 14:43 freewater 阅读(5555) 评论(2) 推荐(2) 编辑
摘要: 字符值包含字母、数字和特殊符号。在字符值可以存储之前,字母、数字和字符必须转换为数值代码。所以必须建立一个转换表,其中包含了每个相关字符的数值代码。这样的转换表就称为字符集,有时也称为代码字符集(code character set)和字符编码(character encoding)。 要想让计算机处理字符,不仅需要字符到数值的映射,还要考虑如果存储这些数值,所以便诞生了编码方案的概念。是定长存储呢,还是变长存储?是用一个字节还是用多个字节?仁者见仁,智者见智。依据需要的不同,诞生了很多的编码方案。对于Unicode,就存在UTF-8、UTF-16、UTF-32。 而在MySQL中,字符集的. 阅读全文
posted @ 2011-12-17 20:55 freewater 阅读(4612) 评论(0) 推荐(0) 编辑
摘要: 1.安装Fedora下yum install mysql-server.i6862. 配置开机启动服务/sbin/chkconfig --add mysqld [在服务清单中添加mysql服务]/sbin/chkconfig mysqld on [设置mysql服务开机启动]/sbin/service mysqld start [启动mysql服务,与开机无关]3.设置mysql数据库root帐号密码。mysqladmin -u root password 'freewater' [引号内填密码]4. 让mysql数据库更安全mysql> DELETE FROM mysq 阅读全文
posted @ 2011-12-14 16:44 freewater 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 这主要是字符串编码问题引起的,所以需要转换字符再次编码。转自:http://www.qqread.com/java/2010/10/d496127.htmlString 的getBytes()方法是得到一个字串的字节数组,这是众所周知的。但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组。如果你在使用这个方法时不考虑到这一点,你会发现在一个平台上运行良好的系统,放到另外一台机器后会产生意想不到的问题。比如下面的程序, 1. class TestCharset 2. { 3. 4. public static void main(String[] args) 5. { ... 阅读全文
posted @ 2011-12-08 21:44 freewater 阅读(934) 评论(0) 推荐(0) 编辑
摘要: 之前就看过开复的自传,感触颇深,今天浏览博文时又掀起了回忆和感触,特摘录下来和大家分享。转载自:http://www.blogjava.net/max/archive/2009/09/05/293959.htmlmax的博客写得不错O(∩_∩)O~勇敢的去追求自己的梦想!!我今天上网看IT新闻的时候,看到各大网站都有不少类似文章——《谷歌大中华区总裁李开复离职》。其中有一则标题为《李开复新书封面被曝光 披露离职创业内心独白》的新闻令我颇有感触。由于文章篇幅比较长,所以我摘录了其中李开复向其老板提出请辞的一段对白与各位好友分享。 老板来了,我的思绪回到了现实。不过,我已经准备好了! 艾伦 阅读全文
posted @ 2011-10-24 21:32 freewater 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1.与段落控制相关标签<p align=”#”>创建一个段。#可以是left,right,center,justify.<br>换行<hr color=”clr”>插入水平线。Clr可以为预定义颜色名字。例如:red, blue, black, white, yellow, olive, aqua.也可以为十六进制数表示的颜色值,clr=”#rrggbb”。2.控制文本显示<center> 文本居中<hn align=”#”>用于指出文档标题,n是1-6的整数,1表示最大。<font size=n color=”clr”> 阅读全文
posted @ 2011-10-07 11:17 freewater 阅读(670) 评论(0) 推荐(0) 编辑
摘要: Exercises 9.3-8Let X[1 .. n] and Y [1 .. n] be two arrays, each containing n numbers already in sorted order. Give an O(lg n)-time algorithm to find the median of all 2n elements in arrays X and Y.解: int findMedian( X[1..n], Y[1..n]) // X 和 Y均为n个以排序的数组在 X,Y中取中位数,分别为m1,m2 O(1)若m1=m2, return m1//不妨设m. 阅读全文
posted @ 2011-09-07 22:40 freewater 阅读(938) 评论(0) 推荐(0) 编辑
摘要: Describe an O(n)-time algorithm that, given a set S of n distinct numbers and a positive integer k ≤ n, determines the k numbers in S that are closest to the median of S.solution:算法思想:1.找到数组a中第n/2小的数median;2.对a中非median数进行|a[i] - median|,得到一个大小为n - 1的数组distance;3.寻找distance中第k小的数值;4.对distance进行一次遍历,找 阅读全文
posted @ 2011-09-07 22:36 freewater 阅读(308) 评论(0) 推荐(0) 编辑