自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (12)
  • 收藏
  • 关注

原创 More Effective C++ 整理后感

为什么不是读后感?因为如果仅仅是读完,我还写不出感言,只有在整理、摘要的过程中,才知道哪些是要点,哪些代表了作者的精髓。读完又花了一周多才将这本Scott Meyers的薄薄的大作整理完成,其实整理的过程就是一次再读的过程,我仍然坚持好书读两遍才知其意的观点。像这样的大师级的书恐怕再读个两遍也不为过。这本书不仅仅教会我C++有什么,通过C++能实现什么,更重要的是它教会我:如果C++现在不提供

2009-04-27 10:25:00 758

原创 元编程(TMP)扫盲

昨晚看《Effective C++》才知道了元编程(TMP)这个东东,今早决定写个Fibonacci数列试试,给自己扫个盲。 #include templatestruct fibonacci{ enum {value = fibonacci::value + fibonacci::value}; fibonacci() {std::cout << value;}}

2009-04-26 10:54:00 1919

原创 遗传算法解TSP问题的C++源码

《智能优化算法》课的一次作业。报着学点东西的态度,没有从网上下载(网上好像都是那个VC6的MFC程序),纯C++,从零写起,顺便学习了一下如何用STL。 #include #include #include #include #include #include #include #include const int NCITY = 51;struct

2009-04-26 10:35:00 7825 10

原创 More Effective C++ 读书摘要(目录索引)

一、基础议题 Item 1. 区分指针和引用Item 2. 优先考虑C++风格的类型转换Item 3. 决不要把多态用于数组Item 4. 避免不必要的默认构造函数二、运算符Item 5. 小心用户自定义的转换函数Item 6. 区分自增运算符和自减运算符的前缀形式与后缀形式Item 7. 不要重载"&&"、"||"和","Item 8. 理解new和del

2009-04-26 10:23:00 1727 1

原创 More Effective C++ 读书摘要(auto_ptr的一个实现)

下面是两个auot_ptr的实现。第一个版本文档化了类的接口并在类的定义体外面实现了所有的成员函数。第二个版本将所有的成员函数都实现在定义体内了。 在风格上,第二个实现不如第一个,因为它没有将类的接口从实现中分离出来。但是auto_ptr只是一个简单的类,所以第二个实现比第一个清晰得多。这是把auto_ptr的接口和实现分开的版本:templateclass auto_ptr {

2009-04-24 09:12:00 1156

原创 More Effective C++ 读书摘要(六、杂项)Item32 - 35

Item32. 在将来时态下开发程序: 作为软件开发人员,我们也许知道得不够多,但我们知道万物都会变化。我们没必要知道什么将发生变化,这么变化又怎么发生,以什么时候发生,在哪里发生,但我们知道:万物总会变化。 好的软件能够适应变化。它提供新的特性,适应到新的平台,满足新的需求,处理新的输入。这种软件的灵活性、健壮性、可靠性不是来自于运气。它是那些遵照了现在的要求并关注了将来可能的开

2009-04-23 22:37:00 816

原创 More Effective C++ 读书摘要(五、技巧3)Item30 - 31

Item30. 代理类: 实现二维数组 对于C++内置的数组,如data[][],第一个[]返回的是一个数组,第二个[]从这个返回的数组中再去取一个元素。我们可以通过重载Array2D类的operator[]来玩同样的把戏。Array2D的operator[]返回一个新类Array1D(代表一维数组)的对象,再重载Array1D的operator[]来返回所需要的二维数组中的元

2009-04-23 14:55:00 933

原创 《Beginning Python From Novice to Professional》学习笔记九:More Abstraction

0.类的私有性 Python中对象的属性是可以从外部访问的,本身不直接支持私有性,对此的解释是 Isn’t it enough that each object manages its own attributes? 在Python中如果要使方法或属性从外部不可访问,则必须在名字前加上两个下划线 class Secretive: def __inaccessible(self):

2009-04-20 23:10:00 816 1

原创 More Effective C++ 读书摘要(五、技巧2)Item28 - 29

Item28. 智能(smart)指针:当你使用智能指针替代C++的内建指针(dumb pointer),你就能控制下面这些方面的指针的行为:构造和析构(Construction and destruction)、拷贝和赋值(Copying and assignment)、解引用(Dereferencing)大多数智能指针模板看起来都象这样: template

2009-04-20 22:26:00 925 1

原创 《Beginning Python From Novice to Professional》学习笔记八:Abstraction

Laziness Is a Virtue --- Real programmers are lazy. Not lazy in a bad way, but in the sense that they don’t do unnecessary work. 1.创建函数 def fibs(num): result = [0, 1] for i in range(num-2)

2009-04-19 22:21:00 769

原创 《Beginning Python From Novice to Professional》学习笔记七:Statement

1.More about Print print Age:, 42 ---> Age: 42 注意以下语句的区别: 1, 2, 3 ---> (1, 2, 3) print 1, 2, 3 ---> 1 2 3 print (1, 2, 3) ---> (1, 2, 3) 2.More about Import import somemodule from somemodule import

2009-04-19 22:16:00 1142

原创 《Beginning Python From Novice to Professional》学习笔记六:Dictionary

1.创建(注意Dictionary是没有顺序的) phonebook = {Alice: 2341, Beth: 9102, Cecil: 3258} 冒号之前为key,之后为value,key必须具有唯一性。 items = [(name, Gumby), (age, 42)] d = dict(items) ---> {age: 42, name:

2009-04-19 22:13:00 883

原创 《Beginning Python From Novice to Professional》学习笔记五:Advanced String

1.格式化 format=hello, %s. Your ID is %d. values=(thy, 38) print format % values ---> hello, thy. Your ID is 38. 如第二句如示,要修饰多个元素,可以用Tuple,也可以用Dictionary(但不可以用List,因为List会被认为仅仅是一个单值) 2.模板(此功能不是内置的,因此

2009-04-19 22:12:00 700

原创 《Beginning Python From Novice to Professional》学习笔记四:Tuple

Tuple与List最大的区别就是Tuple的元素不可更改(和String一样),其它几乎感觉不到区别(The only difference is that tuples can’t be changed.) 1.元素后出现逗号就自动成为Tuple 1,2,3 ---> (1,2,3) (1,2,3) ---> (1,2,3) 18, ---> (18,)  #仅有一个元素 注意以下两例的区别:

2009-04-19 22:11:00 586

原创 More Effective C++ 读书摘要(五、技巧1)Item25 - 27

 Item25. 使构造函数和非成员函数具有虚函数的行为:有三个类,注意其继承关系:class NLComponent { //用于 newsletter components public: // 的抽象基类 ... //包含只少一个纯虚函数}

2009-04-19 21:04:00 984

原创 More Effective C++ 读书摘要(四、效率)Item16 - 24

Item16. 记住80-20准则:80-20准则说的是大约20%的代码使用了80%的程序资源;大约20%的代码耗用了大约80%的运行时间;大约20%的代码使用了80%的内存;大约20%的代码执行80%的磁盘访问;80%的维护投入于大约20%的代码上;通过无数台机器、操作系统和应用程序上的实验这条准则已经被再三地验证过。80-20准则不只是一条好记的惯用语,它更是一条有关系统性能的指导方针,它

2009-04-19 07:55:00 738

原创 More Effective C++ 读书摘要(三、异常)Item9 - 15

为什么一定要使用异常?答案很简单:异常不能被忽略。Item9.使用析构函数防止资源泄漏:通过智能指针auto_prt将清除代码放入其析构函数里。核心部分如下:templateclass auto_ptr {public: auto_ptr(T *p=0): ptr(p) {} ~auto_ptr() {delete ptr;} private:

2009-04-11 20:38:00 825

原创 《Beginning Python From Novice to Professional》学习笔记三:List

1.删除元素 names = [thy, jlj, god, dog] del names[1] ---> [thy, god, dog] 2.片段赋值 names[1:]=list(thy) ---> [thy, t, h, y] names[2:2]=[] ---> [thy, t, y] 但要注意片段赋值的右值只能为List 3.a

2009-04-11 08:52:00 713

原创 《Beginning Python From Novice to Professional》学习笔记二:Sequence

1.下标从0开始,-1代表最后一个元素,-2为倒数第二个。 2.因为顺序化操作是内置的,所以形如 Hello[1] fourth = raw_input(Year: )[3] 均为合法输入 3.可以用*来重复List的值 如action = 3 * [go] --->([go] * 3也一样) [go, go, go] 而action = 3 * go --->(

2009-04-11 08:50:00 704

原创 《Beginning Python From Novice to Professional》学习笔记一:String

1.两个字符串放在一起会自动合并 "Lets say " "Hello, world!" --->Let/s say "Hello, world!" 但是两个字符串变量放在一起中间要加“+”号才会合并 2.str与repr str会将变量转化成某种用户能够理解的String方式,如 print str(10000L) --->10000 #str(object) -- Converts

2009-04-11 08:46:00 911

原创 《Core Python 2nd》读书摘要二

21.标准Type的分类作者将标准Type分成三个Model,以搞清相互之间的关系,以及如何动作。①Storage Model:Storage Model Category Python Types That Fit CategoryScalar/atomNumbers (all numeric types), strings (all are lite

2009-04-10 22:06:00 589

原创 More Effective C++ 读书摘要(一、基础议题 二、运算符)Item1 - 8

〇、“引言”约定与术语:1.指针加p,引用加r。2.(在对operator==)的调用中,lhs和rhs,分别为“left-hand side”、“right-hand side”的缩写。3.ctor表示“constructor”,dtor表示“destructor” 一、基础议题Item 1. 区分指针和引用:以下情况应该使用引用->①当知道要指代某个对象并且不会再指代其他的东西②当实现

2009-04-09 16:23:00 727

原创 《Core Python 2nd》读书摘要一

1.print语句在2.0版本之后支持重定向,使用>>语法:输出到标准错误流import sysprint >> sys.stderr, Fatal error: invalid input!输出到log文件logfile = open(/tmp/mylog.txt, a)print >> logfile, Fatal error: invalid input!lo

2009-04-01 15:38:00 876

原创 灵光一闪 ~ Diamond

其实上是我们当时考研复试的上机题目——打印钻石,当时难住了不少人。尽管我做出来了,不过可花了我不少时间。记得当时是采用两层循环来计算,比较麻烦。不过那会儿只求能做出来,哪管得了那么多。这次一位朋友无意中问到我,我一下子想到一个用自定义零坐标的方法来实现,再加上空间换时间的概念,就成了下面这个小程序。核心代码在7行左右,比当时的少了近2/3。记一下:#include #include #

2009-04-01 15:29:00 840

windows版的 inotifywait v1.8

Windows平台的 inotifywait,github -- https://github.com/thekid/inotify-win 编译平台WIN7 X64, cywin ver 2.881

2017-09-12

laravel-4.1.27-sae-v1.1.0

只需手动增加一行代码即可让Laravel4(~4.2)运行在SAE,而且在本地和在SAE开发无需命令切换,自动判断环境并切换配置。 详细介绍请看https://github.com/chariothy/laravel4-sae 放在这里的是已经用laravel4-sae打包过的,直接解压出来就可以上传到SAE运行。方便那些composer速度太慢的朋友。

2014-11-18

laravel-4.1.27-sae-v1.0.0

只需手动增加一行代码即可让Laravel4(~4.2)运行在SAE,而且在本地和在SAE开发无需命令切换,自动判断环境并切换配置。 详细介绍请看https://github.com/chariothy/laravel4-sae 放在这里的是已经用laravel4-sae打包过的,直接解压出来就可以上传到SAE运行。方便那些composer速度太慢的朋友。

2014-10-18

laravel 3.2.14 sae v1

介绍和用法请见http://1.laravel3.sinaapp.com/

2014-10-06

Laravel 3.2.4 for SAE v1

SAE里面与Laravel相关的框架就是【SAE移植 手线】移植的版本,但是他一定要用memcache,这东西在SAE里面是很贵的,因此我想用mysql来做缓存。cache和session都很容易修改,改config文件夹中的对应文件就行了。唯独Blade的缓存很麻烦,【手线】将修改的Laravel与sae紧密地绑定在一起。所以我觉得这种方案本身也不太好。而且Blade生成的缓存发布之后很少会修改,用mysql一般也够了。 我的方案中在config文件夹下增加了blade.php这个配置。在其中设置drive为memcache就是用SAE的memcache,drive为database,就是用SAE的mysql。还是比较灵活的。 大家可以把代码用上传包的方式安装到SAE中自己的新应用,也可以把代码用SVN同步到SAE上去。 v1版本中增加了SAELOG类,在本地开发时用Laravel自带的Log类,在SAE时自动使用sae_debug函数记录。并且在ini_set('display_errors', 'Off')时只记录到SAE的日志中心。

2014-10-05

Laravel for SAE

SAE里面与Laravel相关的框架就是【SAE移植 手线】移植的版本,但是他一定要用memcache,这东西在SAE里面是很贵的,因此我想用mysql来做缓存。cache和session都很容易修改,改config文件夹中的对应文件就行了。唯独Blade的缓存很麻烦,【手线】将修改的Laravel与sae紧密地绑定在一起。所以我觉得这种方案本身也不太好。而且Blade生成的缓存发布之后很少会修改,用mysql一般也够了。 我的方案中在config文件夹下增加了blade.php这个配置。在其中设置drive为memcache就是用SAE的memcache,drive为database,就是用SAE的mysql。还是比较灵活的。 大家可以把代码用上传的方式安装到SAE中自己的新应用,也可以把代码用SVN同步到SAE上去。

2014-10-04

设计模式便携手册v.1.0

设计模式便携手册v.1.0,再学习经典著作时觉得应该整理一份像Design Pattern Cheat-Sheet一样的中文便携手册,方便翻阅。

2014-09-16

火鸟The Firebird Book-开发人员参考手册

火鸟 The Firebird Book 开发人员 参考手册。英文版,官方PDF。但是我手工加上了所有的精准标签,方便大家查找。

2013-09-30

C++语言权威参考手册 v1.1

由于经常要查询C++相关的资料,翻书太麻烦,MSDN太大,去网上查询又太慢。于是决定将www.cplusplus.com整个打包成CHM,以便查询用。其中与查询无关的部分我没有打包,大家完全可以登录网站去看。另外,网站组织得相当好,我也就没有做Index的必要了。 几点说明: 1.点击Articles和Forums是会登录到网站去的,我已经改成了红色字体 2.本地页面会在标题后面紧跟[in CHM]以提示,若跳转到了互联网页面可点击工具栏上的“后退”返回CHM 3.页面内的搜索引擎均是联网的,原来的Yahoo和Live被我改成了Bing 4.页面内所有的Login均被我用脚本去除 5.因为主要用作参考手册,所以我将主页面的布局稍微调整了一下,将Library Reference放到了最前面 最后忠心感谢cplusplus.com和Offline Explorer! 希望对大家的工作学习有点帮助。 (后记:总算做完了,看上去挺容易,可是把网站打包成CHM还是有不少烦人的工作要做的,好在用Python处理起来比较方便,要是用C++...^_^ 要10分只为让我的熬夜得到肯定,呵呵) Have fun (^o^)

2009-08-23

遗传算法解TSP问题

,《智能优化算法》课的作业,用遗传算法解TSP问题。其间遇到了收敛速度慢的问题,也是在这个网找到了解决方案。大家下载的应该都是那个VC6的Windows程序。我这个是从零开始写的,大家看起来应该容易懂些。C++的Console程序,VC2005下编译。全部用STL,所以旧的编译器可能会有点问题。压缩包内有谢胜利的论文:《TSP遗传算法的改进》。正是用他的贪婪交配才使得10代左右解就收敛到很好。再次赞一下!

2009-05-21

More Effective C++(中文)

More Effective C++(中文)

2009-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除