05 2011 档案

摘要:尾递归就是递归调用在函数的最后一步,这样的递归可以被编译器优化成类似于循环的形式,无须保存stack frame和局部变量,提高性能,一般可以通过一个accumulator参数将一个传统递归改造成尾递归, 一下是一个C++中的例子:int factorial_tail_recursion(int n, int acc){ if (n == 1) { return acc; } return factorial_tail_recursion(n-1, acc * n);}int factorial(int n){ if (n == 1) { return 1; } return n * fact 阅读全文
posted @ 2011-05-31 04:30 lzprgmr 阅读(903) 评论(0) 推荐(0) 编辑
摘要:近来一篇<The Dark Side Of C++>在坊间广为转载,作为一个以C++为吃饭家伙的程序员,还是应该下载下来好好读一读的。 总的来讲还是总结的蛮全的,由于个人知识的限制,我读完后将其分为三类:一类是我不以为然的,觉得算不上阴暗面;一类是深有同感,深受其害;而另外一类则是还不理解,需要日后有时间的时候加以研究的。一、不以为然不断变更的标准,迫使我们需要不断更新已有代码。 作者列出了几点其实影响并不是很大(循环变量的scope;头文件后缀;名字空间)。而且,为了标准的进步,偶尔做出的妥协也是应该的吧。不断变更的style,作者举得例子是:Old and busted:for 阅读全文
posted @ 2011-05-20 11:55 lzprgmr 阅读(1644) 评论(12) 推荐(1) 编辑

黄将军