同事写的一些代码中有递归,导致效率下降好多,在debug下非常明显,导致大家在用debug模式下打开文件调试非常慢。
解决办法就是不用递归的方式喽。
递归的优点是代码简洁,缺点是:
运行效率较低,需要额外的栈空间,所以空间消耗要比非递归代码大得多,出栈压栈也有开销,递归深度大时更是明显。
Read more →
Read more →
Read more →
参考链接:http://developer.51cto.com/art/201005/201718.htm
Trunk是主干,最主要的代码主干;
Branch是分支,一些针对稳定(发布)版本的小修改;
Tag是标签,可以是milestone的,可以是发布的,也可以是有重要意义的版本。
Read more →
发现QT在安装包是用这个工具做的,Mark
http://nsis.sourceforge.net/Main_Page
Read more →
想要在Dialog的size变化,或窗口移动时,对Dialog中控件进行重新布局。
其实主要是在OnSizer里加一reLayout函数,但是在第一次进入OnSizer时,界面上的按钮控件等还没有创建,hWnd都是NULL,在运行完OnInitDialog后才创建。
之前的解决办法是加一个bool的成员变量,在OnInitDialog时标记为true,然后在OnSizer里判断。老查同学看了觉得不好,给出了以下办法:
创建一个Sizer类,作为该Dialog类的成员变量,在OnInitDialog时new出来,在OnSizer时判断Sizer指针对象是否存在。Sizer类在还负责布局控件,在其构造函数时,把父窗口句柄,和窗口上的控件指针都传进去。这样就把布局和对话框独立开来。 2.老罗同学给了一个也很简单的办法,就是在OnSizer时对按钮等对象用IsWindow进行判断。http://msdn.microsoft.com/en-us/library/y840ts89.aspx
Read more →
2012.9.24更新
这是为了解决这样一种情况:
A类里有C,B类想要访问A类里的C,但又不想因为A对象被删除时影响到B对C的使用。
主要用到了设计模式里面的克隆模式和观察者模式。
Object
Data
Flow
Trigger
Read more →
Q. What is the difference between a shallow copy and a deep copy?
深拷贝和浅拷贝的定义可以简单理解成:如果一个类拥有资源(堆,或者是其它系统资源),当这个类的对象发生复制过程的时候,这个过程就可以叫做深拷贝,反之对象存在资源,但复制过程并未复制资源的情况视为浅拷贝。 浅拷贝资源后在释放资源的时候会产生资源归属不清的情况导致程序运行出错。
参考链接:http://www.cnblogs.com/BlueTzar/articles/1223313.html http://tech.163.com/05/0404/17/1GGRTTV300091589.html
Read more →