摘要:
设计模式GoF的描述我的理解Adapter适配器模式将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作转换接口,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的,此时我们可以通... 阅读全文
摘要:
内存读写断点的实现,是把相关内存页属性设置为PAGE_NOACCESS,这样当此页内内存被读写的时候会有异常传给调试器。当异常传给调试器时候,debugee进程被挂起,调试器把内存页属性重新修改回去,同时设置一个单步调试断点。这样debugee进程才可以正常执行过去,否则会一直被挂起。因为被设置了单... 阅读全文
摘要:
静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。使用内部函数的好处是:不同的人编写不同的函... 阅读全文
摘要:
windows 内存管理方式主要分为:页式管理,段式管理,段页式管理。页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页;页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应的页表;并用相应的硬件地址变换机构来解决离散地址变换问题。页式管理采用请求调页... 阅读全文
摘要:
原文:http://msdn.microsoft.com/en-us/library/dd293599.aspx参考:http://www.cnblogs.com/zhuyp1015/archive/2012/04/08/2438176.html http://msdn.microsoft.co... 阅读全文
摘要:
1、auto关键一的优点auto关键字可以知道编译器根据变量的初始表达式来推倒变量的类型,使用auto主要有一下方面的优点:(1) 鲁棒性:当表达式的类型改变,包括函数返回值类型的转变,程序依然可以正确运行,不需要改变所有的变量类型。(2) 性能:可以消除类型转换。(3) 易用性:不用担心类型名错误... 阅读全文
摘要:
1、仿函数的概念仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。在写代码时有时会发现有些功能的实现的代码,会不断的在不同的成员函数中用到,但是又不好将这些代码独立出来成为一个类的一个成员函数。但... 阅读全文
摘要:
1、KMP算法KMP算法程序看起来比较简单,但是求next数组的过程还是比较难理解,next数组实质就是求最大的前后缀,该算法的复杂度是O(m+n),算法流程如下:假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置如果j = -1,或者当前字符匹配成功(即S[i] == P[j]),都令i+... 阅读全文
摘要:
(转)http://blog.csdn.net/yzl_rex/article/details/7908259回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。经常有一些题目围绕回文子串进行讨论,... 阅读全文
摘要:
1、递归方法 例如,如果集合是{1,2,3},那么这个集合中元素的所有排列是{(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)},显然,给定n个元素共有n!种不同的排列,如果给定集合是{1,2,3,4},可以用下面给出的简单算法产生其所有排列,即集合(1... 阅读全文