终于要走了
Posted by KingsamChen in CODE LIFE on 2010年08月30日
当你在我的Blog上看到这篇日志时,我或许已经准备出发了。当你在我的人人看到这片同步日志时,我可能在火车上已经窝了好长一段时间了
RT吧RT~其实没什么实质性的内容,不解释,无需解释
窝了这么多年,终于第一次去外省读书,而且是天津,距温州1285KM- -||
对大学生活有点点期待,然后剩下的差不多都是麻木的淡定感了,我不知道从具有兲朝特色的高中转移到大学会有什么实质性的区别,我也很好奇:我最后是否能够、还需要多久才能够脱离这个操蛋的社会
我很担心我在这个如酱缸一般的操蛋的社会被腌制的时间太久,内心终被慢慢锈蚀,成为千百万操蛋人群中的一员,于是对面的世界少了一段传奇……
每每到了新生入学的这个时候,我都有一种想FXXK XXX的欲望和不满,这欲望和不满显然是被一种叫做“军训”的F**King Shit所引起的。
我完全不觉得军训这个bullshit有什么存在的必要:在操场上如SB般站着,重复着一堆SB般的动作,念着“为XX服务”这种SB般的口号就能提升爱国主义情怀和个人意志力,这是我听过最操蛋最扯淡的屁话,没有之一,连李洪志的学术都无出其右。
Yale的某校长曾说过,红色中国的大学本身就是一个笑话。
你见过哪国的大学强制学生参加军训这种SB的活动,强制学生学习“马列毛邓江湖论”?
少年强则国强,少年SB则国SB。但是无论少年变得如何,Party的眼睛都是“雪亮”的,因为少年和他们无关,他们只喜欢少女,尤其是那种“未经开垦”的少女。
于是,Party能有机会挺剑而起,用强奸民意的能力调教着这块地盘和地盘上的动物
好了,扯淡完毕了,各位洗洗睡吧,鄙人也要开始准备赶往下一个“社会主义人才梦工厂”了
浅析VC.NET的CString类
Posted by KingsamChen in PROGRAMMING on 2010年08月26日
对于使用MFC的Coder来说,CString肯定是一个经常要用到的类,它封装了一个字符串应具有的大部分功能,使得MFC的字符串操作不像C中那么痛苦。
而文本旨在通过对CString类源代码的一些分析,使得大家对于这个类具有更深入的了解,避免在以后使用过程中出错。
在进入正题前,要说点题外话:为什么是VC.NET的CString类?
答案很简单,在M$将MFC从4.X(VC6)升级到7.X(VC.NET)开始,原来的CString被重新设计以便与ATL共用,并且支持了template特性。而由于VC6对于C++标准支持差得令人发指,成为众矢之的,且逐渐式微,将成明日黄花,故这里分析VC.NET的CString类
1. 亲子疑团之谁是我爹
在新的MFC体系中,CString并不是一个实际存在的类,实际上存在的是CSimpleStringT和CStringT,而我们常用的CString只是一个typedef-class。
这种变动,无疑让CString的身世显得扑朔迷离。
CString童鞋内牛满面,不禁高呼:你们到底谁TM是俺爹?
CString是谁呢?呃,在经过一番从CString到它祖宗十八代的调查后,我们发现:CString的爹,其实是CSimpleStringT。而CStringT,则是CString的前世
2.亲子疑团之混乱的关系
CSimpleString是CString体系变化的一个代表。
在过去,CString实际上是个独立的类,据说连万物之祖——CObject和它都没有半毛钱关系。CString一个人负责内存管理、字符串操作.etc
而到了新体系下,AFX小组为了更好地与ATL重用,将CString功能分拆成两块:基本的内存管理和缓存操作以及高级的字符串处理。CSimpleStringT便是负责前者。
至于CStringT,便继承自CSimpleStringT,然后封装了高级的字符串处理。
那么,我们为什么说CStringT是CString的前世呢?因为下面一行代码
typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;
对于采用了模板的类来说,这种typedef并不少见,std::string也是一个typedef-class
PS1:CStringT最初在ATL中设计,并有了MFC支持版(二者应该区别不大),于是编译器分别提供了cstringt.h和atlstr.h
PS2:即使是现在,CSimpleStringT也是独立的类,与CObject仍然没有半毛钱关系
Read the rest of this entry »
栈与队列
Posted by KingsamChen in PROGRAMMING on 2010年08月23日
栈(stack)和队列(queue)是最常见的线性表数据结构之一,用途十分广泛。而且可以使用数组或者链表作为其存储容器
1.栈
栈是一种先进后出(First-In-Last-Out FILO)的数据结构。数据进入栈的操作称为“压栈(Push)”,而出栈的操作称为“出栈(Pop)”。
FILO线性表的特点是:存取元素的操作只在一段进行。即:先压栈的元素必定后出栈。
就好象常见的桶装饼干,最底层的饼干一定是最先装进去的,而我们先拿出来吃的饼干,则是最后装入的。
栈的最顶部称为栈顶,压栈和出栈都在这里进行。而底部由于没有什么大用途,所以也没有赋予特定的名称
如图,是一个栈的简单示意图
栈的应用包括函数的调用以及回文识别等等。
2.栈的实现
为了方便使用,在C++中,我们设计一个CStack
关于模板函数和模板类,请参见模板函数和模板类
Read the rest of this entry »
童年 —— 班德瑞
Posted by KingsamChen in MUSIC on 2010年08月22日
班德瑞的曲子很多,大多数都算得上佳作,但是我一直觉得,这首《童年》在其中算得上神作
曲子具有很强烈的乡村音乐的感觉
堆与堆排序
Posted by KingsamChen in PROGRAMMING on 2010年08月21日
1.什么是堆
这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。
堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示(普通的一般的二叉树通常用链表作为基本容器表示),每一个结点对应数组中的一个元素。
如下图,是一个堆和数组的相互关系
二叉堆一般分为两种:最大堆和最小堆。两种堆内部的数据都要满足自己的特点。
比如最大堆的特点是,每个父节点的元素值都不小于其孩子结点(如果存在)的元素值,因此,最大堆的最大元素值出现在根结点(堆顶)
最小堆的性质与最大堆恰好相反
由于堆排序算法使用的是最大堆,所以我们这里以最大堆为例,最小堆情况类似,可以自己推导
对于给定的某个结点的下标i,可以很容易的计算出这个结点的父结点、孩子结点的下标,而且计算公式很漂亮很简约
但是这里有一个很大的问题:目前主流的编程语言中,数组都是Zero-based,这就意味着我们的堆数据结构模型要发生改变
Read the rest of this entry »
C/C++错误日志文件读写——LogFile
Posted by KingsamChen in PROGRAMMING on 2010年08月16日
RT
对于Release版本的程序来说,记录错误通常只能采用读写日志的方法解决(程序自己的日志或者系统日志),毕竟把所有错误信息用对话框(MessageBox)呈现仍然是一件值得商榷的事情
之前KC也写过类似的东西——DebugToFile。但是事实是,这个东西真的可以说是一个鸡肋
需要MFC支持
文件操作需要生成实例对象
架构设计上存在问题
于是,LogFile诞生了
和DebugToFile不同,LogFile采用单一函数接口的方式提供功能,不需要像类一样产生实例对象才能使用
另一个比较好的地方在于,LogFile采用通用/标准的设计哲学,不过很可惜,由于各种编译器间的兼容问题,未能做到100%的通用化(注意点后面说明)
LogFile提供的函数接口如下:
void LogErrorToFile(const wchar_t* lpszFileName, wchar_t* lpszFormat, …);
void ClearFile(const wchar_t* lpszFileName);
void DeleteFile(const wchar_t* lpszFileName);
LogErrorToFile支持不定参数和格式化命令,其实就是类似printf的格式化输出,并且自动在调试信息后增加一行写入时间
ClearFile清空日志文件,DeleteFile删除日志文件
Read the rest of this entry »
影评:窃听风云、叶问2、杜拉拉升职记
Posted by KingsamChen in VIDEO on 2010年08月14日
窃听风云
这片子看了差不多将近半年有了吧囧rz,磕磕绊绊的……
就总体而言,差不多可以算是香港电影的代表作之一了
开场的镜头很显然是在营造气氛,小巷+老鼠给人以非正常的感觉,这也比较适合窃听的主题。另一个点是配音,很多桥段里配音出现的时间把握的不错
不过一个比较大的硬伤是下部分的剧情。就上部分而言,属于典型的商业片:情节紧凑而且有压力,而中间部分直接松垮了,以至于在后面的部分杀人灭口的桥段中的安排给人感觉速度过快。
速度快的结果就是撞车了,所以Boss出现的快,死的也快。而给人留下的印象除了主角被KS之外,其他都所剩不多。
不过出乎意料的是,结尾没有我想象中的狗血,这可以算是亮点之一吧
Read the rest of this entry »


COMMENTS