文章吧-经典好文章在线阅读:《C++标准程序库》读后感精选10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

《C++标准程序库》读后感精选10篇

2017-12-30 20:51:02 来源:文章吧 阅读:载入中…

《C++标准程序库》读后感精选10篇

  《C++标准程序库》是一本由[德] Nicolai M. Josuttis著作,华中科技大学出版社出版的平装图书,本书定价:108.00元,页数:800,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助

  《C++标准程序库》读后感(一):很不错的一本STL入门书

  曾经写过这本书的读书笔记:

  http://www.wutianqi.com/?p=2131

  最近又拾起来大概翻了一下,因为书太厚,主要看的自己的笔记,辛亏当时做了笔记,大概花了一天,重新温习了下,不然得花个好几天时间

  个人感觉就是第一遍可以认真读,但也不要太细,毕竟不可能光看,或敲下书上代码就可以记住,主要是有个印象,以后遇到时,可以查,而且也可以查漏补缺&&加深印象。

  不知道大家对此书的看法如何?

  《C++标准程序库》读后感(二):C++11 之前的終極參考書

  此書全面講述 C++ 標準程序庫,除了其中最主要的標準模板庫,還涵蓋涵了如國際化工具、空間配置器等其它方面,是一本經典之作,每一位 C++ 程序員都必備此書,可當作全面的參考手冊。此書作者為 C++ 標準委員會成員,譯者之一侯捷還是《STL 源碼剖析》的作者。衹可惜,此書原版出於1999年前後,剛好在2011年出了最新的C++ 标准:C++11,其語言本身和標準程序庫均有大幅變化,此書的第二版(當然是英文原版)也會在2012年4月16日前后出版,因此此書的内容有點落後了。鑒於此書第一版的中文譯本也是在英文原版出版後第三年才出版,不建議等第二版譯本,直接讀第二版原版就是了。不過也不用急,C++11 的普及也需時日。

  《C++标准程序库》读后感(三):有机会应该去了解下STL背后的数学思想

  此书在amazon.com上几乎得到了全五星的评论。800页的大部头,我大概花了一周不到的时间基本读完,并动手敲完了前10章的绝大部分demo代码。

  TL的设计思想(通过迭代器将数据结构和算法分离,获得通用性的程序组件)是此书的精华。其余的部分诸如复数complex,valarray,bitset,strings,国际化等等,了解一下即可,没有必要深究。还有令人纠结的auto_ptr,本身就是一个设计失败的产物,当一个组件给你提供了3条功能却告诉你为了使用这3条功能你需要遵守10大戒律的时候,这个组件本身的设计没准就是有问题的。很不幸,在我看来,auto_ptr就是这样的组件,使用它会带上很大的心智负担(C++的很多特性都是如此,看上去很强大很花哨,但深究起来发展这里面的陷阱很多,会给使用者带来很大的心智负担)。

  此书中还有很多句子在前后反复强调,一再呼应,比如中译本的P444和P453,都有这样“最后新增加的一个pop()调用动作……程序输出如下:”这样的句子。再比如统一类型的很多算法,其使用要点和能力限制都是差不多的,书中也反复的强调。这当然可以拿德国人的严谨性说事,但也显得书籍比较罗嗦。这部分也占了很大的篇幅。

  去除以上两部分,此书最有价值东西就在300页左右,也就是第5-10章的内容,细说起来,就是STL,容器、算法、迭代器、仿函数。

  TL的核心设计思想是数据结构和算法的分离,这个从某种意义上来讲,是和OOP的思想背道而驰的。所以在STL中只用到了Object-based的东西,却没有用到Object-oriented,STL没有用到继承。STL之父Alexander Stepanov也并不是100%赞同OOP的。Alexander本身是俄罗斯某大学数学系出身,因此STL背后有着很深刻的数学思想,为此Alexander专门写了一本书,"The Elements ofProgramming"。

  我的数学基础并不能参透STL这些背后的数学思想,不过仅有的一些lisp和scheme的知识,倒让我在STL中的某些组件里面,找到了一些似曾相识的东西。

  比如像functor(仿函数),我觉得仿函数的本质在于将函数的地位提升到和C++ class同样的一等公民的位置。在scheme中,函数(操作)和数据一样,都可以作为一等公民,可以当做参数传递、返回。而在C++中,数据才是一等公民,C++ class的各种机制(构造函数、析构函数、运算符重载等),无非也就是让用户自定义的class拥有和built-in的类型一样的使用接口和特性(比如像std::complex和int)。但函数本身在C++中并不能通过很轻易的方式成为一等公民。要想像普通数据一样传递函数,需要用到函数指针。而functor的存在,就是为了通过重载operator(),来实现传递“函数(操作)”的目的。至于优点和好处,此书上已经说的很清楚了。

  再比如像transform()、for_each()、accumulate()算法,如果你读过SICP前两章,你就会发现这其实和lisp/scheme里面的map/reduce函数有异曲同工之妙。MapReduce?没错,就是那个MapReduce,google的那个MapReduce。

  语言是会影响人的思维的。所以我并不赞同“语言和工具不重要”的这种论调,没错,语言是相通的,C++可以做到的事情,汇编一样可以,本质上大家都是Turing-Complete的。但是Turing-Complete并不意味着相同表现形式和使用难度,多学几种语言,多了解几种思想,不盲目崇拜,跳出语言的框架去学习语言,是很重要的。

  扯远了,回头说说阅读此书的基础和后续吧。首先需要对C++有比较好的了解,如果连const、reference都搞不清楚,还是不要读此书了。其次最好对模板技术有一些了解,最好能看些"C++ Template: The Complete Guide",了解下type traits这类技术。

  读完此书后,找个机会动手实现下STL的各种container和一些基础算法,Mark A.Weiss有一本老书"Data Structures and Problem Solving Using C++",包含了很多STL的实现代码和STL的应用,很不错,可惜现在很难搞到。有机会再去读读侯先生的"STL源码剖析"。当然,更高阶的,什么c++ template metaprogramming,我就不继续了。

  顺便,侯先生在此书中不遗余力推荐它的译作和著作,我总算是没抵住诱惑,买了本"STL源码剖析",正在消化中。

  《C++标准程序库》读后感(四):当需以迅雷不及掩耳盗铃之势学习C++

  这确是一本让人深以为相见恨晚的C++力作.

  尤其是在C++11标准已出之后才阅毕,更是对自己的后知后觉唏嘘不已.

  如前有人所建议,如经济拮据,可于网上下载电子版观看.

  当然,个人还是认为应该购置一本常做翻阅,厚厚的一砖头,看累了还可以就地做枕休息... ^_^

  当然了,看似近800页的大部头其实真实算起来内容并没有那么夸张.

  书中每页都有大块的空白,究其原因是因为侯捷先生在译序里也已解释的很清楚了,只为保留"交叉索引"这一好处.

  关于"交叉索引", 读后我也深有体会,在需要引用他页的内容来解释时不仅方便查找随时翻阅任意章节,而且在反复跳跃式的翻阅中更易加深知识的理解记忆.

  当然,这也只是个人看法,以前接触过类似的书,却只觉得徒增视觉障碍.

  本书说来深入,较之C++primer自是更加深入STL,但是也相对来说比较浅显,用例代码也是相当的朴实无华.

  除了STL, 书中还对 I/O stream 和 Locale 进行了较系统的解释说明.

  阅毕此书,之前看The C++ Programming Language的一些疑窦豁然开朗,看STL源码也较之前鸭梨骤减. 获益良多~

  如系统阅读,建议抽空对照下侯捷个人主页上的勘误,还是有部分的错误的...

  不过基本上也都是些零零碎碎的小误,没有根本上的大谬误.

  至于说是用来当字典般查找,我倒是不甚赞同,因为如果只是看看用法有更好的cppreference.com之类的网站即可,也有离线版本的.

  如有知识不明,倒是可以依点查来巩固之.

  《C++标准程序库》读后感(五):STL初学者应该从这里开始~~~

  看这本书花了一个星期,对照着VC6版本的STL源码看,从什么都不知道到基本上理解了STL是什么,容器是什么有什么用,算法是干什么的等等~·……

  当然,我觉得里面的很多东西使用到的时候再去深究就可以了,比如那100多个算法,看几个基本的算法的源码理解一下就差不多了,其他的知道是怎么用就可以了,还有IO和国际化的东西,我是基本上没看,没太大意义,知道大概怎么用是什么回事就差不多了,因为IO基本上就是用来调试一些基本的东西的,高端的用法基本上用不到,就算用也会有更加好的其他的东西来用。

  初学者学习库,建议从这里开始。不要怕页码多,因为你只需要知道怎么用就可以了,不需要知道背后的秘密,如果想知道,那STL源码才是你想要的····················

评价:

[匿名评论]登录注册

评论加载中……