摘要: 避免在代码中直接使用delete关键字,这需要: 1、在定义单个数据对象时尽量在stack上分配内存;如果必须使用free store内存的话,则使用std::auto_ptr<...>定义2、使用传引用方式传参,避免使用传指针的方式,这样既可以免去指针判NULL的检查,又可以在不失去对象所有权的前提下传递std::auto_ptr<...> 对象3、在定义数组时,使用st...阅读全文
posted @ 2008-09-01 10:19 李现民 阅读(397) 评论(2) 编辑
摘要: 作者:陈跃峰出自:http://blog.csdn.net/mailbomb 在游戏中,经常需要进行碰撞检测的实现,例如判断前面是否有障碍以及判断子弹是否击中飞机,都是检测两个物体是否发生碰撞,然后根据检测的结果做出不同的处理。 进行碰撞检测的物体可能有些的形状和复杂,这些需要进行组合碰撞检测,就是将复杂的物体处理成一个一个的基本形状的组合,然后分别进行不同的检测。 下面简单介绍一下两种最基本的形...阅读全文
posted @ 2008-07-27 13:48 李现民 阅读(475) 评论(0) 编辑
摘要: hpp,顾名思义等于.h加上.cpp,在boost、Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习。hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hp...阅读全文
posted @ 2008-07-09 11:05 李现民 阅读(1811) 评论(0) 编辑
摘要: 新一篇:平台无关性程序的构造0 前言 标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序;GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户...阅读全文
posted @ 2008-07-08 10:14 李现民 阅读(2641) 评论(0) 编辑
摘要: 显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈我的一些观点。1、显示的图形为什么会闪烁?我们的绘图过程大多放在OnDraw或者O...阅读全文
posted @ 2008-07-03 17:11 李现民 阅读(532) 评论(0) 编辑
摘要: 在字符串处理当中,后缀树和后缀数组都是非常有力的工具,其中后缀树大家了解得比较多,关于后缀数组则很少见于国内的资料。其实后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也不太逊色,并且,它比后缀树所占用的空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。因此在本文中笔者想介绍一下后缀数组的基本概念、构造方法,以及配合后缀数组的最长公共...阅读全文
posted @ 2007-10-14 21:44 李现民 阅读(956) 评论(0) 编辑
摘要: 一、选择题:15分 共10题1.一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有____个零元素。A.e    B.2e    C.n2-e   D.n2-2e2.____是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。A.继承(Inhertance) B.模板(Template)C.对象的自身引用(Self-Re...阅读全文
posted @ 2007-10-14 16:52 李现民 阅读(1280) 评论(0) 编辑
摘要: 1)此题10分 对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!=6402373705728000,尾部连续0的个数是3。 (不用考虑数值超出计算机整数界限的问题) Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/...阅读全文
posted @ 2007-10-14 16:31 李现民 阅读(1179) 评论(0) 编辑
摘要: 夜弓写了一个C++的数学表达式库。这个库还是满有创意的,使用它构造了一个函数对象之后,你就可以随时传给它适当的参数求得函数的值。因而你的代码几乎就可以像数学表达式那样简洁,并且具有可读性。我在Gcc3.3和Vc2005的编译器上编译通过,没有问题。如果你在更多的编译器上编译通过,请留言让大家知道啊。我偷个懒,下面的介绍摘自作者写的文档。1.你不用声明并实现一个函数就可以得到和它功能相同的函数对象。...阅读全文
posted @ 2007-06-20 13:45 李现民 阅读(391) 评论(0) 编辑
摘要: ASCII码表 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形 式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII 码表,它的全称是“美国信息交换标准代码”。 八进制 十六进制 十进制 字符...阅读全文
posted @ 2007-06-12 10:01 李现民 阅读(361) 评论(0) 编辑
摘要: tcl/tk 语言http://www.arsdigita.com/books/tcl/ tutor zhandianhttp://www.sco.com/Technology/tcl/Tcl.html;TCL WWWInfoVTK:http://www.kitware.com VTK主战;http://public.kitware.com/Insight/Web/index.htm;ITK at...阅读全文
posted @ 2007-06-08 10:17 李现民 阅读(1755) 评论(1) 编辑
摘要: Windows一用就是几年,总会碰到个更改系统时间的时候。可是把系统时间调坏了容易,要调出个正确可就没那么简单了。几年前(还上大学的时候,大概是大三吧)用C#写过一个ntp的程序,但是时过境迁,NTP的IP更改实在太频繁了(难道是因为没有商业利润?);windows的“Internet 时间”我从来就没有试成功过(有人知道why嘛?);国家授时中心(http://www.t...阅读全文
posted @ 2007-06-06 17:21 李现民 阅读(663) 评论(0) 编辑
摘要: 如果代码里面有 while(*p) 判断字符串结束的,要用 *p!='\0' 代替。1)sizeof相关系列问题, const相关系列问题a. 对于 struct s{char a;int b} sizeof(s) = 8 因为内存对齐 b. 对于struct s{int a;char b} sizeof(s) = 5 这里不需要内存对齐,对齐只向上不向下,这种考得少c. 对于 int a[200...阅读全文
posted @ 2007-05-22 22:46 李现民 阅读(1296) 评论(0) 编辑
摘要: 1. 查找算法 (13) 为判断容器中是否包含某一个值提供adjacent_find()binary_search()count()count_if()equal_range()find()find_end()find_first_of()find_if()lower_bound()upper_bound()search()search_n()2. 排序(sorting)和通用(ordering)...阅读全文
posted @ 2007-05-22 22:33 李现民 阅读(1283) 评论(0) 编辑
摘要: 自打印算法是指在程序运行中,不读取任何额外的信息,仅使用程序代码中携带的功能和信息,将程序代码本身打印输出。一个完整的自打印程序至少保含两部分:信息的描述和执行体。这两者互相表达。在描述部分,用字符串来存储执行部分的代码。而执行体的代码则打印这个描述字符串。通常为了完整输出程序代码,要在执行体内为描述字符串再拼接一些修饰性的内容,这些内容被看作是执行体的一部分。而代码的打印也要打印为两部分,才能将...阅读全文
posted @ 2007-04-10 19:39 李现民 阅读(584) 评论(0) 编辑
摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->s='测试字符串'importtempfiletemp=tempfile.TemporaryFile()print>>temp,stemp.seek(0)s1=temp.read()pytho...阅读全文
posted @ 2007-03-24 17:17 李现民 阅读(708) 评论(0) 编辑
摘要: 使用dump与load函数Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->foo='foo.txt'mydict={'user':'xmli','pass':'password'}mylist=['helloworld',526]fromcPickle...阅读全文
posted @ 2007-03-24 16:50 李现民 阅读(470) 评论(0) 编辑
摘要: 最近研究了一下Python,觉得他这种问答式的界面特别适合学习编程,下面就举两个例子。1.快速排序的算法描述>>> def qsort(aL):... if aL==[]:return []... else:... smaller=[x for x in aL[1:] if x<aL[0]] #比aL[0]小的部分... bigger=[x for x in aL[1:] ...阅读全文
posted @ 2007-03-06 20:07 李现民 阅读(525) 评论(2) 编辑
摘要: 计算机科学的发展和其他学科一样,是由问题驱动的。你问自己一个问题,如果天下没人能给你答案,发现这个问题的答案或部分答案就是很好的科学研究。不过问题有大有小,因而成果的重要性就不一样。要做好的研究,心里一定要有好的问题。  先让我们来看看编程序方面的问题。学计算机的人都会编程,可如何保证程序编得又快又好,问题就大了,这是一个在过去几十年里制造了数千个博士的问题。提高软件的生产率和正确率是非常困难的,...阅读全文
posted @ 2007-01-30 20:20 李现民 阅读(828) 评论(1) 编辑
摘要: JavaScript 一种没有类的,面向对象的语言,它使用原型继承来代替类继承。这个可能对受过传统的面向对象语言(如C++和Java)训练的程序员来说有点迷惑。JavaScript的原型继承比类继承有更强大的表现力,现在就让我们来看看。i Java JavaScript Strongly-typed Loosely-typed Static Dynamic Classical Prototypal...阅读全文
posted @ 2007-01-14 15:33 李现民 阅读(350) 评论(0) 编辑