2011年5月8日
摘要: 在C++ Primer第四章遇到了二维数组和指针的内容,理解起来有点绕,这里做个小节。 在C++ Primer中介绍了一种访问二位数组的方式,定义一个指向一位数组的指针,通过这个指针访问二维数组:#include <iostream>using namespace std;int main(){ int twoArray[3][4] = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}}; int (*p)[4] = twoArray; // 定义一个指向一维数组的指针 cout << "size of p is: &qu 阅读全文
posted @ 2011-05-08 20:18 Kadin Zhu 阅读(8052) 评论(1) 推荐(0) 编辑
摘要: 不知从什么时候开始,脑海中总有一个印象,const常量在赋初值时,必须是编译期间可见的值,比如曾经认为:const int cval = 5; 这样的初始化赋值才是正确的,如果使用一个变量或者调用函数给const常量赋初值,则是错误的。今天又好好试了下const的赋初值,结果发现自己曾经的理解是错误的,看下面的程序:#include <iostream>using namespace std;int getVal(int value) { return ++value;}int main(){ int value = 0; const int cvar = getVal(value 阅读全文
posted @ 2011-05-08 19:15 Kadin Zhu 阅读(698) 评论(0) 推荐(0) 编辑
  2011年5月2日
摘要: 今天在写JSP页面时,使用url参数的形式将一个中文字符串传给了另一个页面,可是发现另一个页面在解析这个参数的时候中文出现了乱码。假设我已经将请求的这段中文字符串赋给了str字符串,那么该怎样得到正确的字符串值呢?查了很多资料,终于找到了一个比较好的解释: 除了UTF-16,其它字符集定义时都重复。比如汉字“我”,假设它的值是22530(只是假设,具体多少我没查)而日文的“マ”的值也可能是22530(也是假设)或韩文的“찾”在网络上传输是不能以高字节传输,因为网络底层最后只认无符号char,相当于java中的byte,所以22530这个int要转换为字节数组,byte[0] = (22530. 阅读全文
posted @ 2011-05-02 15:30 Kadin Zhu 阅读(4626) 评论(0) 推荐(0) 编辑
  2011年5月1日
摘要: 动态规划算法通常用于求解具有某种最优性质的问题。在数学与计算机科学领域,动态规划用于解决那些可分解为重复子问题(overlapping subproblems,想想递归求阶乘吧)并具有最优子结构(optimal substructure,想想最短路径算法)的问题,动态规划比通常算法花费更少时间。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来. 阅读全文
posted @ 2011-05-01 13:27 Kadin Zhu 阅读(465) 评论(0) 推荐(0) 编辑
  2011年4月16日
摘要: 以前在学习java sychronized方法在县城之间的同步时,一直把注意力集中在同一个synchronized方法的同步,也就是说,以前自己只知道当一个对象获得了同步锁,并进入一个synchronized方法(比如a())中时,另一个线程在同一个对象上不能再进入到a()方法中。今天在看wait方法时突然想到,另一个线程在同一个对象上是否可以调用这个对象上的其他synchronized方法呢?下面的代码回答了我的问题:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;impor. 阅读全文
posted @ 2011-04-16 15:43 Kadin Zhu 阅读(876) 评论(7) 推荐(0) 编辑
  2011年4月15日
摘要: 当你在线程上调用interrupt()时,线程中断发生的唯一时刻是在任务要进入到可中断的阻塞操作(如sleep,wait, join等)中,或者已经在阻塞操作内部时。此时线程会抛出InterruptedException,并从异常中退出。如果run()方法内部恰巧没有可以产生阻塞的部分,则run()方法可能就无法被interrupt方法中断。此时,可以调用interrupted()方法判断线程的终止状态,并根据状态控制线程的中断。package Concurrent;import java.util.concurrent.ExecutorService;import java.util.co. 阅读全文
posted @ 2011-04-15 21:45 Kadin Zhu 阅读(681) 评论(0) 推荐(0) 编辑
  2011年4月11日
摘要: 今天在写一个小程序的时候,发现下面这个现象:#include <stdio.h>int get_size(char a[]) { return sizeof(a);}int main(void) { char a[20]; printf("In main, size of a is: %d\n", sizeof(a)); printf("In get_size, size of a is: %d\n", sizeof(a)); return 0;}本以为输出结果会是两个20, 但是实际输出的结果是20和4。原因是数组作为参数传递的时候,实际上 阅读全文
posted @ 2011-04-11 20:33 Kadin Zhu 阅读(909) 评论(0) 推荐(0) 编辑
  2011年4月10日
摘要: 发现了介绍Vim基础使用的几篇不错的文章,这里转载一下,以后再发现关于 vim使用的好文章还会转载到这里vim初探1 vim初探2 阅读全文
posted @ 2011-04-10 11:00 Kadin Zhu 阅读(154) 评论(0) 推荐(0) 编辑
  2011年4月6日
摘要: 很多新人一开始使用vi的时候,总是觉得不顺手,什么都很不方便。这就涉及到几个原因: 1、使用的是vi,不是vim 2、使用vim,但是没有配置好,不符合使用习惯 3、一开始不习惯无鼠标的的操作和vim的编辑模式 第一点先要解释一下,很多初学者认为vi和vim是一种东西,只是叫法不同。其实不然,vim实际是vi的升级版本,包含了许多vi没有的特性(比如多级撤销、易用性、语法加亮、可视化操作等),而且vim完全兼容vi,因此我是建议大家一开始就直接使用vim吧:D 这里重点说明第二点。很多人抱怨,用vim编程时,语法不会自动高亮显示,编辑格式不能自动缩进、匹配以及其他一些缺陷,其实这都是VIM的初 阅读全文
posted @ 2011-04-06 21:58 Kadin Zhu 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 下表是POSIX正则表达式的特殊字符列表,使劲把这些特殊字符记住吧,字符不多,但是功能强大,正则表达式的确很灵活! 阅读全文
posted @ 2011-04-06 21:33 Kadin Zhu 阅读(405) 评论(0) 推荐(0) 编辑