摘要: 阅读全文
posted @ 2012-12-02 15:27 dk647 阅读(1155) 评论(0) 推荐(0) 编辑
摘要: 本来选的网络方向,坑爹的老师居然把我们劈出去做.net项目。于是对.net深恶痛绝的某人费了九牛二虎之力终于跳到了嵌入式项目组。。。哎,之前没听过嵌入式的课,于是只好最快的速度读完了《from c++ to objective-c》和《objc runtime guide》。其实objective-c并没有网上传闻的那么变态。接下来就以一个c++程序员的角度,来总结下我学习objective-c中遇到的问题吧。由于我接触objective-c的时间也不长(不到一周),所以总结中多有纰漏,还望各位大虾指正。阅读本文章需要:c++基础。扫盲一:objective-c是什么?负责任的告诉你,obje 阅读全文
posted @ 2011-09-04 21:46 dk647 阅读(3677) 评论(33) 推荐(2) 编辑
摘要: 从网上淘来了一本《design pattern explained》,用了半个月的时间细细的读完了这本书。本打算单单的从技术角度进行总结的,但是却全然没有头绪。说说自己的粗浅的感悟吧。。书里没有把23中设计模式全部罗列出来,摆上类图和源代码,恩,这样的做法在作者看来很傻。作者说,将目标集中在设计模式解决问题本身上“only tells us what to do but not when to use and why to do it”是的,我们需要的应该是思考的过程和方法,而不是前人留给我们的思考结果。从这个角度讲,设计模式里我们应该学到什么?设计模式是一组伟大的思想结晶。我们的出发点是应对 阅读全文
posted @ 2011-09-03 08:36 dk647 阅读(1882) 评论(4) 推荐(2) 编辑
摘要: 面向对象是个好东西,他可以使责任分立,于是我尝试着在ural1022里面使用了这个思想来实现拓扑排序,很幸运的一次AC。以节点为对象,他的责任有:1 操作自身划入另一个集合2 操作子节点入度减一3 通知入度为0的子节点执行上述两个操作面向对象的好处除了责任分立之外,还有数据的独立。节点对象存储了自身入度,出度,孩子节点等信息。不得不说在思路上比面向过程的要清晰,易书写也易维护。ural1017好多人说是DP,我却用递推把他解了出来。。说实话,DP和递推的界限不是很明显,我甚至觉得DP是用递推实现的记忆化搜索。网上的DP是O(n^2)的时间复杂度。递推是O(n^3)。递推式为:f[i,j] = 阅读全文
posted @ 2011-05-28 17:37 dk647 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 第四章 函数的语义章前阅读c++支持,静态,非静态函数成员,虚函数,不同的函数调用,会产生不同的效果。第一节 不同种类的成员调用非静态成员函数。在挑选函数实例的时候,是没有花费的,这个是通过内部的转换,将成员函数变为非成员函数而实现的。包括以下三步:参数表中添加this指针,函数体内成员变量增加this指针,重写函数为外部函数并进行名字分解。名字分解。成员函数的名字被改为唯一的名字,通过整合类名和成员名(与类名结合,我们就可以在子类里访问父类的同名成员了)。分解的模式未知,是和编译器相关的。虚成员函数。虚函数的调用,会被转义为形如( * ptr->vptr[index ])( ptr ) 阅读全文
posted @ 2011-05-23 16:43 dk647 阅读(1114) 评论(0) 推荐(1) 编辑
摘要: 第三章 数据的语义章前阅读提到两点:编译器系统会添加一些数据成员去支持一些语言功能。Alignment requirements on the data members and data structures as a whole(不知道怎么翻译,大概意思就是数据成员对齐的需要)第一节、绑定数据成员主要是全局的对象和类嵌套对象的绑定问题首先是对象绑定,假如在一个内联函数里返回一个变量,如果全局定义了同名变量,并且在该函数的后面也定义了同名变量,那么较早一些的编译器会错误的返回全局变量。早期解决该问题的办法是使用安全的书写方式(把嵌套变量放到类的首部,或把内联函数的函数体写到类外)。现在的编译器 阅读全文
posted @ 2011-05-03 21:38 dk647 阅读(633) 评论(0) 推荐(0) 编辑
摘要: ural1082是个水题,答案简单到可以直接在代码提交框里进行编辑。。。事实上我也这么做了。。于是得了两个compilation error但是,题目简单,并不能说明此题没有含量,相反,这个题很有含量。这道题考察了对快速排序的理解。题目的大概意思就是,给出一段快排代码,代码中添加变量c统计指针的移动次数,如果移动次数等于(N*N+3*N-4)/2,然后解题的人就可以把"Beutiful Vasilisa"娶回家了。。。要求,找出一个数的序列,使得移动次数等于(N*N+3*N-4)/2。这个题的通过率很高,但是我在看discuss的时候,并没有发现正确的题解。人们认为,给出一 阅读全文
posted @ 2011-04-26 18:26 dk647 阅读(624) 评论(0) 推荐(1) 编辑
摘要: 终于阅读完了第二章。。。这回先做个中文的总结,然后再慢慢翻译吧。。。第二章 构造函数的语义章前阅读:c++编译器会在程序员的背后做一些事情。并且编译器会尽量修改一个不合法的语句,使其合法,而不是直接标志该程序是错误的。书中举的例子是cin。Jerry Schwarz(iostream库的作者)曾经有过这么一个故事:他为了使if(cin)合法,于是为cin添加了operator int();但是,当偶用户错误的使用cin<<intVel的时候(正确的是cin>>intVel),编译器不会报错,而是偷偷的调用tmp = cin.operator int();然后<&l 阅读全文
posted @ 2011-04-19 16:53 dk647 阅读(1124) 评论(2) 推荐(1) 编辑
摘要: 用近一个月的时间浏览完了ECMAScript,一个基于JScript和javscsript的脚本语言标准(看microsoft的c# references的时候发现c#也基于ECMAScript。。。。)【这里理解有误,更正如下:c#基于ECMA-334 standard 和ISO/IEC 23270 standard,而不是ECMAScript】按照惯例,总结下。看的是ECMA262,3rd,出自1999年。ECMAScript standard specification主要目的是规范类似脚本语言的实现方式。所以里面有大篇幅的实现细节(steps of implementation),这些 阅读全文
posted @ 2011-04-13 12:18 dk647 阅读(514) 评论(6) 推荐(1) 编辑
摘要: 本打算看完再总结的。。结果发现看完这本书需要的时间实在是太长了。为了避免遗忘,于是决定进行阶段性总结。。。。(为了练习英语,我会尽量用英语来表达。希望英语好的同学帮我指正)for a c++ object model, we mainly consider two aspects:the one is language supporting for OOthe other is mechanism supporting that how a compiler implemented it.《inside the cpp object model》(we call it ITCOM in the 阅读全文
posted @ 2011-04-13 11:58 dk647 阅读(929) 评论(0) 推荐(1) 编辑