Effective STL中文版

当前位置:首页 > 网络编程 > 编程语言与程序设计 > Effective STL中文版

出版社:清华大学
出版日期:2006-1
ISBN:9787302126959
作者:[美]Scott Meyers
页数:208页

媒体关注与评论

  带着审视的目光 回顾STL的使用  ——评Effective STL  评论人:Alan Bellingham from ACCU  等级:高度推荐(Highly Recommended)  针对C++的标准库的一部分——标准模版库(Standard Template Library,STL)的书已经有好几本了。它们中的一些已经在以前的ACCU书评中获得了“高度推荐”,并且它们名副其实。那么这本书是为谁而写的呢?又为什么要写呢?  让我先来告诉你这本书不属于哪类。它不是指南,如果你还并不知道如何使用STL,那么从本书中也无法学会。它也不是一本覆盖STL的边边角角的参考书。对于这种参考书,我推荐两本:Nicolai Josuttis的The C++ Standard Library 和Angelika Langer Standard C++ IOStreams and Locales。然而,如果你已经使用过STL一段时间,如果你已经了解容器、迭代器和算法结合到一起方法,并且如果你喜欢当自己知道还有很多东西可以学习时所拥有的那种表现力,那么本书非常适合你。本书的目标在它的副书名中已经说清楚了:50条提高STL应用能力的具体方法。  就像Soctt Meyers以前的书Effective C++和More Effective C++一样,本书也是以一组短小精炼的文章的方式组织的,尽管这些文章被称为条款(item),但它们每一个都是独立完整的。它们被组织为7章:容器、vector和string、关联容器、迭代器、迭代器、函数子、函数子类、函数及其他。  每一章有一个大概半页的简短介绍,文章剩下的内容通常有两到三页,而当作者深入说明某些问题的时候,篇幅会多达12页甚至更多。  即便在最简单的文章里,如“条款44 容器的成员函数优先于同名的算法”,作者也很仔细地说明了他为什么要给出这个建议,以及何时不要采用这个建议。这不是一组盲目遵从的规则,作者情愿你能理解他为什么说到这条规则,以便你能够判断什么时候不要遵从。这就是一个单纯的讲师和一位真正的老师之间的区别。实际上,我发现作者对C++标准的态度令人耳目一新,他在尊重的同时指出了STL的设计中的不好的选择。  本书从表现形式上也安排得很好(指原版),值得一提的是,使用了简洁明了的色彩来说明代码中的特别指出。我们常常会认为所看到的代码的一般形式都是很不明显的。本书中,这些地方会用红色印刷。这样显得清晰而不俗气,我觉得其他的书应该效仿。  本书中有一两处印刷错误(指原版书),但是无伤大雅。而且这些错误并不多见,在正文中并没有出现,那都是经过专家的技术审阅的。  另外,还有几个话题确实没有设计到。例如,关于STL的书通常不会涉及iostreams,但是,这也许只是意味着还将有一本More Effective STL要出版。我当然希望是这样,这本书已经让我回过头去审视我使用STL的经历了。  总的来说,如果每天基本上都要用到STL,并且如果你希望用的更好,那么我强烈推荐你现在就去买一本Effective STL。如果你还不相信我,可以自己去网上查看一些条款。

书籍目录

引言第1章 容器第1条:慎重选择容器类型。第2条:不要试图编写独立于容器类型的代码。第3条:确保容器中的对象拷贝正确而高效。第4条:调用empty而不是检查size()是否为0。第5条:区间成员函数优先于与之对应的单元素成员函数。第6条:当心C++编译器最烦人的分析机制。第7条:如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉。第8条:切勿创建包含auto_ptr的容器对象。第9条:慎重选择删除元素的方法。第10条:了解分配子(allocator)的约定和限制。第11条:理解自定义分配子的合理用法。第12条:切勿对STL容器的线程安全性有不切实际的依赖。第2章 vector和string第13条:vector 和string优先于动态分配的数组。第14条:使用reserve来避免不必要的重新分配。第15条:注意string 实现的多样性。第16条:了解如何把vector和string数据传给旧的API。第17条:使用“swap技巧”除去多余的容量。第18条:避免使用vector。第3章 关联容器
第19条:理解相等(equality)和等价(equivalence)的区别。第20条:为包含指针的关联容器指定比较类型。第21条:总是让比较函数在等值情况下返回false。第22条:切勿直接修改set或multiset中的键。第23条:考虑用排序的vector替代关联容器。第24条:当效率至关重要时,请在map::operator[]与map::insert之间谨慎做出选择。第25条:熟悉非标准的哈希容器。第4章 迭代器……

编辑推荐

  你已经熟悉STL了。你知道怎样创建容器、怎样遍历容器中的内容,知道怎样添加和删除元素,以及如何使用常见的算法,比如find和sort。但是你并不满意。你总是感到自己还不能充分地利用STL。本该很简单的任务却并不简单;本该很直接的操作却要么泄漏资源,要么结果不对;本该更有效的过程却需要更多的时间或内存,超出了你的预期。是的,你已经知道如何使用STL了,但是你并不能确定自己是否在有效地使用它。

作者简介

STL是C++标准库的一部分。本书是针对STL的经验总结,书中列出了50个条款,绝大多数条款都解释了在使用STL时应该注意的某一个方面的问题,并且详尽地分析了问题的来源、解决方案的优劣。

图书封面


 Effective STL中文版下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计5条)

  •     其实最好的还是直接去看STL源码,像这种书籍意义好像不大,因为,不熟悉STL框架,没看过源码的话,看这种书基本上一点效果都没有,是不可能有什么共鸣的,所以如果是新手的话,看下目录就可以了~!!!!!!!!!如果熟悉了STL的源码的话,比如研究过《STL源码剖析》的,看这种书还可以有点共鸣,但是意义也不是很大了,走马观花地看下就差不多了,根本没必要深究,虽然里面提到的一些技巧还是有建设性意见的,但是一般的东西自己都可以想象得到,像vector的伸缩以及一些算法的用法和雷区等等都是可以意识得到的,所以看过STL实现的源码的话也许还会有些共鸣,但是也只是走马观花就差不多了~而且你还会觉得他啰嗦~~!!!!!!!!!不值得买~!!!要买,买《STL源码剖析》~~…………
  •     如果说《C++标准程序库》是大而全的圣经的话,那么这本《Effective STL》就是针对圣经的讲解。《C++标准程序库》和《Effective STL》是两本好书。有同事说看过《C++标准程序库》就不用看《Effective STL》了,我可不这么认为。事实上,两本书是不能互相替代的,毫无疑问,如果你没有或者很少使用STL的经验,那么从《C++标准程序库》开始吧,800页的旅途,也许是一场比较艰难的跋涉,但是,相信我,看完它(最好像我一样,把书上的源代码都写一遍),你会觉得眼前一片豁然开朗,世界那么美好。当你使用STL一段时间以后,你会开始烦恼,STL的使用的确有不少陷阱,需要注意很多的细节,但是,比起你自己实现一个来,这些都不算什么,那么,开始看《Effective STL》吧,你所遭遇的陷阱,绝对不是新鲜事,几乎每个使用STL的程序员都会和你有同样的经历。《C++标准程序库》里面讲了很多内容,除了最常用的容器、迭代器和算法以后,很多时候,你并不能记住那么多内容,所以,它是作为工具参考书存在的,常翻常新。《Effective STL》的专题条款讲解,在我们通往STL圣殿的跋涉途中,让我们能够挑选更好的工具,以更高的效率前进~
  •     算是第一本完整看完的比较权威些的C++书籍,近一年上班使用C++以来才知道,C++水太深,大学学的那点皮毛完全不够用,Effective系列一直都是比较好的,有些地方稍微翻译的有点瑕疵,但整体很好。对我来说这本看完收获挺多,有问题及时和同事讨论。。谢谢晓露。。以后还要继续恶补C++。 -2016年5月22日于北京

精彩短评 (总计50条)

  •     值得一看
  •     再读一遍,还是有很多收获。以前比较糊涂的仿函数部分,现在是弄明白了,不过C++11已经将其deprecated了,一个bind搞定一切。
  •     没看过这本书之前自己的STL经历可以称之为可笑; 看完才算上路了. 有高人吐槽这本书在看了STL源码之后其实一点用都没有, 以后一定会看看STL源码的,就看侯捷的那本吧,恩.
  •     STL非常经典的C++模版库,能大大如快开发速度,好好学习C++
  •     当手册用
  •     很好的参考书...写的清晰...
  •     stl手册
  •     心血来潮mark下老早前读过的书
  •     挺薄的一本书,值得花时间扫扫,了解一下STL的使用技巧
  •     简单扫了一遍,感觉一般,收获一般
  •     呃,这个系列的书,体例不错。一条条的目录结构,让人读完之后,很有成就感。陶醉于读完一条,想下一条的乐趣。就算戛然而止,下次拿起书来,又有一条新起点。嗯,如果有机会,还会再读一遍。
  •     这本书没得卖
  •     配合《C++标准库》查看不熟悉的算法,效果很好~~
  •     减少一些使用STL库的误区
  •     说实在的,很多地方还没有看明白。 但是看明白的地方都让我很震撼,有一种豁然开朗的感觉。
  •     非常实用的一本书,与侯捷的深入浅出STL结合阅读效果更佳。一个偏应用,一个偏实现。 其实如果几个adapter多些介绍会更好一些,常见算法实现或者代码当中我觉得queue,stack这种的使用比deque更多。 C++ 11之后,这本书更新一下会更好
  •     一本简短的STL书籍,牢记上面的东东,对于经常使用STL的我说来,非常实用
  •     想要高效使用STL,想要了解更多STL技巧,请一定不要放过本书。
  •     需要再读
  •     由于STL经验匮乏,马拉个shit~!一口气读下来,直接变傻逼了~~建议还是把STL玩熟了再来看这本书!
  •     C++标准库使用提高的必选书
  •     C++坑多, 填坑
  •     (1)2015-12-02:在stl使用上的一些经验; (2)2016-5-18:应该读了源码再看,相得益彰。
  •     好书,但看的是电子版的
  •     scott meyers “effective三部曲”之三
  •     实用
  •     没有Effective C++精彩。STL中容器用的比较多,算法以及其他的用的很少。倒是Boost用的很多。
  •     重新认识了STL
  •     未读完
  •     还不错
  •     看完侯捷老师的源码剖析再看这本,只能给四星
  •     嗯,无愧于Effective系列,虽然比较短小,内容嫌单薄。
  •     解释清楚了“严格弱序”问题,sort会出core真是个大坑 -_-||
  •     很久以前读过,C++从熟练到精通需要看的一本书
  •     非常好,梅耶的书我都仔细仔细地看,看完提高很多
  •     从这里开始学会怎么用STL!
  •     算是第一本完整看完的比较权威些的C++书籍,近一年上班使用C++以来才知道,C++水太深,大学学的那点皮毛完全不够用,Effective系列一直都是比较好的,有些地方稍微翻译的有点瑕疵,但整体很好。对我来说这本看完收获挺多,有问题及时和同事讨论。。谢谢晓露。。以后还要继续恶补C++。 -2016年5月22日于北京
  •     一身冷汗,我是用了多少野路子的STL用法。后面某些 functor 在 c++ 11/14/17 里已经 deprecated ,需要找本新的书看了。当然,我们线上还是老旧的 gcc
  •     已绝版书籍在网上买了个印刷版的,由于先看的STL源码剖析再读这本书还是挺容易理解的,书里给了一些比较好的编码规范和建议
  •     一个STL的错误让我开始看这本书
  •     终于看完了,不过估计会常翻的
  •     不错
  •     又多会了一点东西。貌似当时看的电子版,内容忘光了。。
  •     在合适的时间读了一本合适的书,振聋发聩,看清了自己对于STL乃至C++是多么无知
  •     读了这本,在STL的使用上,算是足够娴熟、不止于API了
  •     看了一遍,有些地方理解还是不够深刻
  •     我看这本书的时候,对于STL还只会用很简单的vector std::for_each之类的东西。看过之后,我觉得stl还是有很多好东西值得挖掘,同时也有很多东西值得注意
  •     在火车上读的。。。对stl有了重新的认识
  •     当你想用STL之前,先读读这本,
  •     很全面的STL使用技巧总结,基于C++03。STL功能强大而复杂,有的接口命名并没有很直观和统一,一些底层实现的方式让人费解,例如vector。要用好STL确实不容易。中文版翻译质量一般。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024