摘要: 说起STL就不能不提到迭代器,它是STL中非常关键的概念,正是它连接了容器和算法,要理解STL思想首先 要理解的便是迭代器,这篇笔记总结了我两次看《STL源码剖析》第三章的阅读笔记,其中也包含了自己的 一些想法,欢迎大家指正。 本文从三方面总结迭代器 迭代器的思想 迭代器相应型别及traits思想 __type_traits思想 一 迭代器思想 迭代器的主要思想源于迭代器模式,其定... 阅读全文
posted @ 2011-04-19 18:36 HappyAngel 阅读(2973) 评论(0) 推荐(1) 编辑
摘要: 寒假抽空看了下编程珠玑,最大的感受便是编程也是一门艺术,期间也引导我思考了一些问题,回学校后打算做一个总结,主要是根据编程珠玑后面的Algorithm附录总结了一下这本书里面的经典算法。1 辗转相减求最大公约数思想:最大公约数能整除i和j,则其一定也能整除i-j(if i>j)int gcd(int i, int j) { while(i != j) { if(i > j) i-=j; else j-=i; } return i; }2 快速求取x的n次方思想:充分利用了已经计算出来的数据防止重复计算来减少了算法运行时间function exp(x,n) //pre n>=0 阅读全文
posted @ 2011-03-15 19:50 HappyAngel 阅读(3850) 评论(1) 推荐(1) 编辑
摘要: 问题起源于编程珠玑Column 12中的题目10,其描述如下: How could you select one of n objects at random, where you see the objects sequentially but you do not know the value of n beforehand? For concreteness, how would you read a text file, and select and print one random line, when you don’t know the number of lines in... 阅读全文
posted @ 2011-02-07 23:13 HappyAngel 阅读(15521) 评论(0) 推荐(9) 编辑
摘要: 这两天看到编程珠玑第二章,关于习题2.3中说到杂耍算法执行gcd(i,n)次后即可停止,这里我想了很久为什么?书中提到的Swap Sections解决了我的疑惑,在明白为什么的时候真的 “啊哈”了一下,原来这样,感觉证明非常巧妙,不敢独享,所以复述如下。problem:rotate a one-dimensional vector of n elements left by i positions. For instance, with n=8 and i=3, the vector abcdefgh is rotated to defghabc.这个问题可以有三个巧妙的算法来解决(关于这三个 阅读全文
posted @ 2011-01-16 21:34 HappyAngel 阅读(2725) 评论(0) 推荐(0) 编辑
摘要: 前段时间做了一个小型的连连看游戏,基本功能都实现了,做完后对里面的用到的算法印象深刻,特分享出自己的思维过程,我尽量还原自己的想法,由于我算法能力不强可能更倾向于普通大众的水平,所以可能很多人都会有启发:).  简单的连连看游戏基本界面如上图,这个问题来源于编程之美的1.14题,它要求我们设计出这样一个连连看游戏,考察的是里面最最基本的算法知识,当然,算法有了,写出这样一个游戏来本身不是很困难的事情。  先来了解下连连看的规则:  1 用户可以把两个相同的图用线连到一起,如果连线拐的弯不超过两个(可以等于)则表示可以消去。  2 当界面上所有的图片都消去后,则游戏胜利。  3 游戏的过程中可能 阅读全文
posted @ 2010-12-25 15:05 HappyAngel 阅读(19078) 评论(0) 推荐(2) 编辑
摘要: 以前做过类似字符串的题目,当时觉得字符串也能用递归来做非常神奇,后来思考了下,觉得只要抓住字符串是由一个个字符组成的,从第一个字符到最后一个字符每一个都可以作为一次递归,把index作为参数传进去就行,以这种思想为指导才把此题解了出来。   对于每个字符只有两种情况,设当前字符串指针为x, 目标字符串指针为y:  GetString(x,y)= GetString(x+1,y), 不取当前字符  ... 阅读全文
posted @ 2010-11-02 23:32 HappyAngel 阅读(4508) 评论(0) 推荐(0) 编辑
摘要: 本身这个问题非常简单,直接用地址差值即可求得,最近在某本书上看到了一个非常牛的方法,第一次看还将信将疑觉得不太可能,后面上机验证发现确实可以,代码如下:  [代码]  仔细看第14行代码,发现这个宏非常奇怪,没错,就是用来求偏移的。我们知道宏的本质是替换,在预编译的时候会替换代码,那么里面有什么玄机了?我发现其实此法是用了欺骗编译器的技巧来求得偏移的。取地址符‘&’... 阅读全文
posted @ 2010-10-29 23:43 HappyAngel 阅读(5139) 评论(0) 推荐(0) 编辑
摘要: 最近在复习算法,做了一下编程之美上面关于二叉树的三道题,感觉顺便就把二叉树总结下算了,于是就有了这篇文章,这些算法有些是自己思考出来的,比如重建二叉树,有些是以前的知识还有些是看了网上其它大牛总结而成,现在贴出来分享,希望大家指正。感觉算法的学习重要的不是算法本身而是算法背后的思想,就是一些本质上的东西,或者说思考的过程,这些才是真正重要的。对于二叉树来说,最重要的是它的递归特性,这是由它的定义决... 阅读全文
posted @ 2010-10-24 20:42 HappyAngel 阅读(3918) 评论(1) 推荐(1) 编辑
摘要: 今天参加了华工阿里巴巴俱乐部承办的领导力培训,由ReBalance公司的sherman lai主讲,老实说领导力对我一直是个盲目的概念,这次让我有了个充分的认识,虽然不能认为他说的完全正确,但至少有一些观点我是非常认同的,所以总结了下,便于以后查看。   首先一点,将困难转为卓越的跳板,这是一种正式困难的心态,这种心态非常的不错,遇到困难不是畏惧而是迎难而上,每一个积极面对生活的人都应该具有这样的... 阅读全文
posted @ 2010-10-19 22:16 HappyAngel 阅读(893) 评论(0) 推荐(0) 编辑
摘要: 前几天收到亚运专业志愿者培训的通知说这周六、日要在北校35号楼培训,以前一直对专业志愿者有所期待,毕竟是不同于通用志愿者的,不过就是不明白具体专业在哪。这次培训让我有了个大概的了解,也第一次认识了一群非常有激情、细心和耐心的团队,同时也是北京奥运会转播中负责评论席系统团队。 阅读全文
posted @ 2010-09-12 20:01 HappyAngel 阅读(877) 评论(0) 推荐(0) 编辑