跳至主要内容

博文

目前显示的是 四月, 2006的博文

template template parameter

挺拗口的,不过TTP其实只是模板参数的进一步抽象。就像指针,指向指针的指针那样,这个比喻可能不太恰当,不过大概是这个意思啦。 下面的代码定义了一个模板类,第一个模板参数是接受类型的参数,第二个是接受模板类型的参数。 template < typename T, template < typename ELEM > class CONT = std::deque > class Stack { private : CONT < T > elems; public : } ; 单独将第二个参数提取出来看,template <> class CONT 只是一个很平常的模板,这便是定义一个模板类型的模板参数的语法,因为只是为了说明CONT是个模板,所以ELEM可以省去,即template class CONT,就算加上了,ELEM也不能当作类型使用,这实际上是一个dummy参数。有人要问了,typename能省吗?这可不行,template<> class CONT是实例化的模板,template class CONT是模板定义,两者不同。所以啦,为了让std::deque 参数能直接写成std::deque,绕了这么一大圈。 虽然typename与class在template参数定义中常常等价, 但是template class CONT = std::deque> 是有效的, 而template typename CONT = std::deque>是无效的,会引起编译错误。 为什么呢?因为CONT被定义为模板,而模板需要实例化才能使用,即CONT 。这么用的多半是class,而且我们在Stack定义中也是这么实现的,如此一来,typename便使得类型匹配处引起编译错误了,虽然不知道是否会出现可以使用typename的情况,书中确实提到Template template parameters for function templates are not allowed,看起来似乎只能使用class关键字。 不过上面的代码在使用时仍然不能通过编译,因为TTP的类型匹配不会使用默认参数,因此,对标准库的deque而言,第二个带默认值的参数alloca

reviver, you should

be optimistic don't see things gloomily, we all live hardly, life is tough, you should first conquer it in heart. be actively handle things actively, better results comes. be diligent no advancement will be made if you are lazy or waste your time. be enthusiastic help others, before receive it from others. be kindly be kindly to everyone who know you, care you, love you, ask yourself whether you are better or not when criticize others. be versatile no thing can replace another, focus on what you need, but still learn from various things, enjoy it. be healthy you have duties for you family and wife, don't go first.

Computer Systems: A Programmer's Perspective

Bryant, R.E所著的这本Computer Systems: A Programmer's Perspective,在国内翻译为《深入理解计算机系统》,由中国电力出版社2004出版,应该算是一本重量级的书了。从同学推荐到今天看完,足足花了有5个月的时间,虽然看得不深,但总的感觉还是不错,在这里就对它作一个总结吧。 Computer Systems表明这本书讲解的是计算机系统知识,但A Programmer's Perspective却又告诉我们它与其它书籍的不同之处,便是从程序员的角度,即偏向软件的角度,而不过多地涉及硬件内容。计算机系统本身就是一门涉及面广,内容繁多的学科,这本书不可避免地从各个角度讲解了这些内容。下面以我个人的观点进行一些总结。 第1章:计算机系统漫游 主要是对全书内容作了一个简要的概括。 第2章:信息的表示和处理 这一章主要讲解了整数与浮点数。虽然对于整数我们已经很熟悉了,但是在实际中仍会犯下各种各样的错误,书中对不同整型数间的转换及运算作出了很详细的论述。浮点数似乎一直是计算机书籍里不愿涉及的话题,对于想了解浮点数表示及浮点数运算的人来说,这部分关于浮点的描述可以作为一个很好的起点。 第3章 程序的机器级表示 对于任何一个希望了解底层的人来说,这一章可说是相当精彩的。本章主要讲解了IA32的指令集,因此以汇编为主,在控制流指令部分还将C语言及对应的汇编形式进行了对照,在调用部分还详细讲解了本地栈。最后为对浮点感兴趣的人准备了IA32中用于处理浮点的指令集。 第4章 处理器体系结构 这一章是本书中最接近硬件的部分了,从设计一个简单的处理器Y86出发并逐步完善它,一步步地引导读者理解处理器体系结构。虽然我们可能永远也不会自己设计处理器,但了解它是何工作的能有助我们理解整个计算机系统是如何工作的,比如对程序优化就很有帮助。本章首先给出了Y86的指令集,并使用一种硬件描述语言HCL对硬件的逻辑结构进行了描述,然后将指令分成取指、译码、执行、访存、写回、更新PC六个阶段,给出了每条指令的每一部分的操作内容,并对每一部分的硬件实现分别进行了讨论。显然,这种顺序的实现过程是低效的,本章的后面部分便围统着流水线的实现以及遇到的问题展开了论述。 第5章 优化程序性能 本章介绍了一些代码优化的内容,如前面所说,只有理解了处理器系

偶然发现Google提供了新的搜索服务

偶然间发现Google提供了一项新的搜索服务,Google学术搜索,专门用于搜索学术文献。通常我们只是登录某几个数据库进行文献检索,这种范围无疑是狭窄的,通过Google学术搜索,我们可以搜索分布在各个数据库中的文献信息,获取我们所需。当然,有的数据库是需要收费的,对大多数学校来说,通常都会购买一些数据库,登录授权也是根据IP地址段来判断的,所以我们仍然可以获取目前我们能够获取的信息。 Google学者可以通过scholar.google.com访问。 以下是官方的介绍: 什么是 Google 学术搜索? Google 学术搜索提供可广泛搜索学术文献的简便方法。您可以从一个位置搜索众多学科和资料来源:来自学术著作出版商、专业性社团、预印本、各大学及其他学术组织的经同行评论的文章、论文、图书、摘要和文章。Google 学术搜索可帮助您在整个学术领域中确定相关性最强的研究。 Google 学术搜索的功能 从一个位置方便地 搜索 各种资源 查找 报告、摘要及引用内容 通过您的图书馆或在 Web 上 查找 完整的论文 了解 任何科研领域的重要论文 如何对文章进行排名? Google 学术搜索按相关性对您的搜索结果进行排序。跟 Google Web 搜索一样,最有价值的参考信息会显示在页面顶部。Google 排名技术会考虑到每篇文章的完整文本、作者、刊登文章的出版物以及文章被其他学术文献引用的频率。

about me

Fly high, to the summit, that's the meaning my parents give me. Maybe I failed them. I was born in the time of snakes. There are many descriptions about snakes, they are dissocial, passionate in their inner heart. Same thing appeared in the remarks of scorpion, maybe that's me. But believe it or not, I am at the good side. My childhood were same as other boys, naughty and amused. Finally I discovered the secret of studying in grade six when in elementary school, and began to study seriously. I am not talented, but progress is always made. I went to college in 1996 and was studying automation in the following four years. But I was more and more interested in computer programming, and managed to change. I made it in 2003 but found ideal alwas keeps distance with reality. I am near thirty now, but have nothing done, Shamed of it, I need more diligence. Wish I could go further to my dreams, and make this mutual encouragement with everyone here.