身为C++标准库最重要的组成部分,STL(标准范本库)不仅是一个可复用元件库,而且是一个包罗演算法与资料结构的软体框架(framework)。“框架”这个词,本身就有庞大、稳定、完整而可扩展的涵义。软体框架,则是用一行行精细准确的源码,构造一个庞大、稳定、完整而可扩展的软体架构,稍有软体发展经验的人都知道,要做到这些,谈何容易! STL在1994年走入C++标准,使得原本即将推出的C++标准延迟4年问世而无怨无悔,并为之对内容做巨幅改进,而今STL不仅为千千万万C++程式师所日常运用,而且获得极高的学术赞誉,成为了一个典范,一种境界。作为一个软体框架,STL所取得的成功,实在可以用“辉煌”来形容,其所内涵的软体思想和技术经验,更是无比的深厚与精致。 学习编程的人都知道,阅读剖析名家代码乃是提高水准的捷径。源码之前,了无秘密,大师们的缜密思维,经验结晶,技术思路,独到风格,都原原本本地体现在源码之中。在你仔细推敲之中,迷惑不解之时,恍然大悟之际,你的经验、思维、视野、知识乃至技术品味都会获得快速的成长。特别是面对STL这样优秀而普遍的作品,无论你是为了满足作为程式师第二天性的求知欲,还是在日常工作中解决实际问题,总会有一天,你会打开一个叫做或者的表头档,想把STL背後的秘密看个究竟。英文 有一个常用短语,叫做“under the hood”,钻进魔术师的帐篷,屏住呼吸,瞪大眼睛,把那些奇妙的魔法看个通透,让自己的理解和技艺获得巨幅的提升,这种诱惑,任何一个程式师都无法抵挡! 不过,想要研读STL源码,绝对没有那麽简单。STL是精致的软体框架,是为优化效率而无所不用其极的艺术品,是资料结构与演算法大师经年累月的智慧结晶,是泛型思想的光辉诗篇,是C++高级技术的精彩亮相,这些灿烂的赞誉,体现在数万行源码 ,对於一个初涉此道的学习者来说,就是一个感觉:“难!”。无论你是会浅尝辄止地退出这次探险,还是勇敢地向浓雾中前进,当你受困於STL精致的大网之中,为那些迷一般的结构和动作感到茫然无措的时候,所有人都会冒出一个念头:“如果有这样一本书,既能够提纲挈领,为我理顺思绪,指引方向,同时又能够照顾小节,阐述细微,帮助我更快更好地理解STL源码,那该有多好!” 望着长长的STL着作列表,一个“真正”的C++程式师,多少会有一点遗憾。自从STL问世以来,出版了大量的书籍,帮助读者了解它的思想,学习它的用法,掌握它的技巧。其中佼佼者如Matt Austern的《Generic Programming and STL》,Nicolai Josuttis的《The C++ Standard Library》,Scott Meyers的《Effective STL》,已成C++经典名着。然而,定位在引导学习者进行STL源码分析的着作,可以说是凤毛麟角。毕竟,既要能高屋建瓴,剖析大架构,不为纷繁琐碎之细节而迷乱,又能具体而微,体现细致之处的精妙缜密,不因为宏大体系而失之粗略,无论对於专家高手还是技术作者,都是太难达到的目标。 读了这本《STL源码剖析》之後,我认为,这个遗憾终於被补足了! 本书的作者侯捷先生是蜚声海峡两岸的着名IT技术作家,在C++,Windows系统原理,泛型理论和STL等技术领域有极深的造诣。然而,侯捷最令人称道之处,乃是他剖析大架构的能力。所谓剖析大架构,就是要在洋洋洒洒数以万行计的源码中,精准定位,抽取核心观念,高屋建瓴,纲举目张,将看上去乱麻一般的源码梳理得头绪清晰,条理分明,同时又照顾细节,叁透精微,把一个个关键动作阐述得通通透透,这种能力,我以为至少在华人技术作者中,侯捷堪执牛耳。在他的名作《深入浅出MFC》中,侯捷将自己这方面的能力展现得淋漓尽致,而在这本《STL源码剖析》中,我们又看到了一次更加精彩的表现。 我有机会作为大陆最早的几个读者之一,详细拜读了侯捷的这本最新STL专着,感到了一种强烈的技术冲动,说得俗一点,就是觉得很过瘾!具体来说,我以为这本书至少有四大特点,使它成为我所见过的最出色的一本STL源码剖析类着作。 首先,选材精当,立足高远。STL是一个标准,因而有各种实作版本。本书所剖析的SGI STL,可以说是设计最巧妙,思想最深刻,获得赞誉最盛,认同最广的STL实作。当然,这份出自STL之父Alex Stepanov,以及Matt Austern,David Musser等巨匠之手的经典作品,剖析阐述起来自然也需要花费更大的心力。侯捷籍其扎实的理论与技术素养,毅然选择这份作品来剖析,是需要极大勇气与自信的。同样,本书对读者的预期,也是很高的,不但要有扎实的基本功,更要有掌握STL的兴趣与坚韧意志。读这本书,你可以有充分的信心,学到的是超一流大师的思想和经验,所谓名门正派,高屋建瓴。 其次,脉络清晰,组织顺序匠心独具。任何人打算系统阅读STL源码,所必须作出的第一个决定就是,从何处开始?我在初读此书时,一个最疑惑的地方就是侯捷居然把allocator放在所有组件之前讲述。要知道,allocator这个东西,对一般的使用者完全透明,根本感觉不到其存在,以至於在名着《The C++ Standard Libaray》中,Nicolai Josuttis将这一部分放在全书最後。既然如此,又何必让这个无名小卒占据头版头条?我一开始还真是不理解。直到後来,我自己有一些扩展STL的实践,才发现,用的时候你固然可以对allocator不闻不问,但一旦要领悟STL的工作原理,或者要自己扩展STL的功能,则对於allocator的掌握几乎是第一先决条件。不了解allocator,则无论剖析也好,扩展也罢,必然处处碰壁。侯捷毫不迟疑首先帮读者搬开这块绊脚石,理出头绪,实在是匠心独具。紧接着的第三章iterator及traits,直入STL的核心观念与关键技术,剑走中锋,直取要害,高举高打,开诚布公,直接把理解STL的钥匙交道读者手上。此章一过,读者神气完足,就可以大刀阔斧地打通STL的重重关隘。此布局只要稍有变化,读者的学习难度势必猛增。侯捷的此种安排,实在是大家手笔! 此外,本书在技术上迎难而上,详略得当,完整而重点突出。了解SGI STL的读者都知道,这份作品对C++标准中的STL做了大量的扩充,增加了专用的高效allocator,用以操作巨型字串的rope,单链表slist,以及万众企盼的hash容器等等,再加上STL本身就有很多精微之处,技术上的难点不少。此类书籍的作者,但凡稍有一丝懈怠之心,大可以冠冕堂皇地避重就轻。然而侯捷在此书中对重点难点毫不避讳,无论是标准功能还是非标准功能,只要对读者理解STL架构有益,只要有助於提高读者的技术,增长读者的视野与经验,书中必然不畏繁难,将所有技术细节原原本本和盘托出。另一方面,所谓剖析源码,其目的在於明理,解惑,提高自身水平,并不是要穷经皓首,倒背如流。因此,一旦道理讲清楚,书中就将重复与一般性的内容一笔带过,孰轻孰重,一目了然,详略十分得当,这一点对於提高读者的学习效率,有着巨大的意义。 最後一点,本书通过大量生动范例和插图讲解基本思想,在同类书籍中堪称典范。虽然我把这一点放在最後,但我相信大部分读者站在书店,随手翻过这本书,得到的第一印象便是这一点。STL之所以为大家所津津乐道,除了其思想深刻之外,最大的因素是它实用。它所包装的,是演算法与资料结构的基本功能。作为一个程式师,如果你是做资料库编程的,大可以不懂组合语言,如果你是写驱动程式的,大可以不必通晓人工智慧,写编译器的可以不用懂什麽电脑图形学,作业系统内核高手的不用精通网站架设,然而,如果你不懂资料结构与演算法的基础知识,不具备资料结构与演算法的基本技能,那就完全丧失称为一个程式师的资格!市面上讲述演算法与资料结构的专着汗牛充栋,俯拾皆是。相比之下,本书倒并不是以此为核心目标的。但是,可曾有哪位读者看到任何一本书像本书一样,将红黑树用一张张清晰生动的图解释得如此浅显易懂?所谓一图胜千言,在教授基本资料结构与演算法方面,我想不出还有任何一种方法,能够比幻灯般的图片更生动更令人印象深刻了。读过此书的每一位读者,我想都会为书中那一副副插图所打动,作者细致严谨的作风,时刻为读者考虑的敬业精神,也许是更值得我们尊敬的东西。 侯捷先生在一篇影响广泛的STL技术杂文中,将STL的学习境界划分为三个阶段,(1) 会用,(2) 明理,(3) 扩展。阅读STL源码是由第一层次直贯第二层次,而渐达於第三层次的一条捷径,当然也是条荆棘之路。如果你是一个勇於征服险峰的程式师,如果你是一个希望了解under the hood之奥秘的程式师,那麽当你在攀登STL这座瑰丽高山的时候,这本书会大大地帮助你。我非常热情地向您推荐这本着作。当然,再好的书籍只是工具,能不能成功,关键还在你自己。
2022-03-21 15:00:44 898KB STL 源码 注释 侯捷
1
【完整课程列表】 Java SE编程入门教程 collection与collections(共7页).pptx Java SE编程入门教程 java GC(共6页).pptx Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 java object(共9页).pptx Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java SE编程入门教程 java封装继承多态(共56页).pptx Java SE编程入门教程 java集合(共38页).pptx Java SE编程入门教程 java接口(共21页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共62页).pptx Java SE编程入门教程 java判断循环(共79页).ppt Java SE编程入门教程 java入门以及变量debug(共63页).pptx Java SE编程入门教程 java设计模式(共17页).pptx Java SE编程入门教程 java数组(共33页).pptx Java SE编程入门教程 java网络编程(共29页).pptx Java SE编程入门教程 java线程(共61页).pptx Java SE编程入门教程 java序列化(共14页).pptx Java SE编程入门教程 java异常(共57页).pptx Java SE编程入门教程 java正则(共8页).pptx Java SE编程入门教程 properties(共3页).pptx Java SE编程入门教程 String字符串(共27页).pptx Java 位运算.docx java正则表达式例子大全 共10页.doc JAVA正则表达式实例教程 共17页.docx JAVA正则表达式实例教程 共17页.pdf 递归算法.docx 堆和栈.wps
2021-12-04 16:06:24 27.52MB Java javase 面向对象编程 java基础
在局域网内能够实现很多的功能哦。。。能够对局域网中的其中某一台电脑进行控制!
2021-11-20 11:23:39 365KB 局域网嗅探器
1
yolov4.cfg yolov4.weights yolov4-tiny.cfg
2021-10-13 19:08:49 228.47MB yolov4
1
第一章 Swishmax 基本操作 1-1 启动Swishmax 1-2 制作图形动画 1-3 储存专案档 1-4 汇出网页档 第二章 文字片头动画 2-1 加入文字方法 2-2 设定文字动画效果 2-3 加入图片 2-4 加入文字 2-5 设定动画顺序 2-6 图形超链结设定 2-7 开启网页动画 第三章 绘图工具应用 3-1 制作光晕效果 3-2 神奇的爱心 3-3 奇妙万花筒 第四章 可爱的动物篇 4-1 多场景动画的制作 4-2 设定场景播放後停止 4-3 场景切换功能 4-4 设定脚本跳跃命令 第五章 校园网络展览 5-1 制作不规则图形 5-2 调整图形物件顺序 5-3 设定动画效果 5-4 延长影片时间 5-5 合适的跳跃设定 第六章 数位艺术展 6-1 批次处理相同效果 6-2 加入背景音乐 6-3 录制语音旁白 6-4 使用网路免费音乐 第七章 非洲之旅 7-1 认识精灵角色 7-2 精灵角色应用 7-3 精灵与影片场景切换 7-4 神奇遮罩效果 7-5 遮罩区制作技巧 7-6 非洲写真展示 第八章 互动式按钮 8-1 按钮的制作 8-2 制作图像式按钮 8-3 互动式按钮制作 8-4 互动式图形选单制作 8-5 动作设定说明
2021-10-09 17:37:02 16MB Swishmax 动画制作 视频教程
1
ISO 11452(1-11) Road vehicles — Component test methods for electrical disturbances from narrowband radiated electromagnetic energy - 完整英文版(1-11共10份文件).7z
2021-09-02 12:01:29 73.19MB 资料
ISO 15118 Series Road vehicles - Vehicle to grid communication interface(1-8共6份文件).7z
2021-09-02 12:01:16 747.77MB 资料
springboot[1]-多模块共用配置文件
2021-05-25 19:02:44 21KB springboot多模块
1
ISO 11452(1-11)完整英文版 Road vehicles — Component test methods for electrical disturbances from narrowband radiated electromagnetic energy(道路车辆--窄带辐射电磁能的电气干扰的组件测试方法)。 包含10份文件如 ISO 11452-1, ISO 11452-2......, 具体可以参照这些文件说明。
2021-05-11 09:01:47 73.19MB iso 11452 车辆 窄带辐射
文件列表 1.PComm.dll 2.Pcomm.h 3.PCOMM.LIB 4.Pcommb.lib 头文件部分内容如下 /* PComm_c.h 3/31/1998 * PComm define file for Win32 on C/C++ * History: * Date Author Comment * 10/22/1996 Victor wrote it. * 03/28/1997 Victor modified. add sio_term_irq function. * add sio_linput function. * 04/29/1997 Victor modified. add sio_putb_x function. * 05/21/1997 Victor modified. add sio_view function. * 06/13/1997 Victor modified. add file transfer function. * 06/30/1997 Victor modified. add sio_TxLowWater function. * 11/17/1997 Victor add sio_AbortWrite, sio_SetWriteTimeouts * 11/21/1997 Victor add sio_SetReadTimeouts, sio_AbortRead * sio_GetReadTimeouts, sio_GetWriteTimeouts * 03/08/1998 Casper support VB 5.0 */
2021-04-15 12:00:53 30KB PComm.dll SerialPort C/C++
1