- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CCSTLATLWTL之间的联系和区别
【C/C++】STL,ATL,WTL之间的联系和区别
STL即 Standard Template Library (标准模板库)
STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。
STL的目的是标准化组件,这样你就不用重新开发它们了。你可以仅仅使用这些现成的组件。STL现在是C++的一部分,因此不用额外安装什麽。它被内建在 你的编译器之内。因为STL的list是一个简单的容器,所以我打算从它开始介绍STL如何使用。如果你懂得了这个概念,其他的就都没有问题了。另外,list容器是相当简单的,我们会看到这一点。这篇文章中我们将会看到如何定义和初始化一个list,计算它的元素的数量,从一个list里查找元素,删除元素,和一些其他的操作。要作到这些,我们将会讨论两个不同的算法,STL通用算法都是可以操作不止一个容器的,而list的成员函数是list容器专有的操作。
STL容器可以保存对象,内建对象和类对象。它们会安全的保存对象,并定义我们能够操作的这个对象的接口。放在蛋架上的鸡蛋不会滚到桌上。它们很安全。因此,在STL容器中的对象也很安全。我知道这个比喻听起来很老土,但是它很正确。STL算法是标准算法,我们可以把它们应用在那些容器中的对象上。这些算法都有很著名的执行特性。它们可以给对象排序,删除它们,给它们记数,比较,找出特殊的对象,把它们合并到另一个容器中,以及执行其他有用的操作。STL iterator就象是容器中指向对象的指针。STL的算法使用iterator在容器上进行操作。Iterator设置算法的边界 ,容器的长度,和其他一些事情。举个例子,有些iterator仅让算法读元素,有一些让算法写元素,有一些则两者都行。 Iterator也决定在容器中处理的方向。你可以通过调用容器的成员函数begin()来得到一个指向一个容器起始位置的iterator。你可以调用一个容器的 end() 函数来得到过去的最后一个值(就是处理停在那的那个值)。这就是STL所有的东西,容器、算法、和允许算法工作在容器中的元素上的iterator。 算法以合适、标准的方法操作对象,并可通过iterator得到容器精确的长度。一旦做了这些,它们就在也不会“跑出边界”。还有一些其他的对这些核心组件类型有功能性增强的组件,例如函数对象。原文见:/doc/pro/stl.html----------------------------------------------------------------------------------------------------------------------------------------ATL: Active Template Library (活动模板库)
可以看一下潘爱民关于《ATL Internals》的书评:ATL是一个产生C++/COM代码的框架,就如同C语言是一个产生汇编代码的框架ATL又不同于MFC,它完全面向COM组件,其技术路线也不同于MFC,MFC使用的是C++中的继承、封装、嵌套等常规技术,而ATL使用了C++中模板、多继承等高级技术,甚至还用到了STL。所以学习和使用ATL要求我们必须熟悉这些C++高级特性。另一方面,ATL结构完全针对COM中的诸多规范,这就要求使用人员必须非常了解COM规范,才有可能真正把ATL用好对于COM应用的开发,ATL无疑是首选的工具,与MFC相比,ATL的规模还不算大,但是从上述的介绍我们可以看出,ATL涉及到了COM的方方面面。 实际上,ATL的内容还要多得多,比如OLE DB的支持、MTS的支持等,尽管如此,如果我们有了这本书中的内容为基础,那么再去学习这些扩展的内容就会容易得多,结合ATL中实现COM的基本手段 加上这些应用技术的背景知识,我们可以很容易地掌握这些开发技术。但是如果我们要想熟练掌握甚至精通ATL的话,那么这只是一个开头,前面还有漫长的路要走。原因有多方面,一则COM本身异常复杂,不下苦功
您可能关注的文档
- Assembly Design and Evaluation in an Augmented Reality Environment.pdf
- Associating+Memory+Through+CaseBased+Immune+Mechanisms+for+Dynamic+JobShop+Scheduling.pdf
- Asset Correlations A Literature Review and Analysis of the Impact of Dependent Loss Given D.pdf
- asterisk安装调试文档.docx
- Asymptotic Quantum Search and a Quantum Algorithm for Calculation of a Lower Bound of the P.pdf
- AS数学考试.doc
- Atihss大学英语六级考试模拟试题含答案Word文档.doc
- ATCC标准菌株目录(Remel)中国工业微生物菌种保藏管理中心CICC.xls
- at in on的区别.doc
- Atlas DAQ Evaluation of a RealTime eXtension(RTX) on WindowsNT.pdf
- 人工智能在课堂教学校际交流活动中的应用方案.docx
- 第13课 清朝前中期的鼎盛与危机-课件(共18张PPT)-2025年高中历史 选择性必修3(统编版2025).pptx
- 四川省成都市达标名校2026届高二生物第一学期期末经典试题含解析.doc
- 第2节第2课时酚高中化学选择性必修.pptx
- 有机磷农药中毒医疗护理讲解.ppt
- 原子结构优质说课稿.pptx
- 高压试题新改编.doc
- 人教初中化学九下12课题1生活中常见的盐.pptx
- 第13讲 清朝前中期的鼎盛与危机 课件(共30张PPT)2026届高三历史统编版(2019)必修中外历史纲要上一轮复习.pptx
- 办公楼停车管理规范与操作指引.docx
最近下载
- 矽力杰产品规格书SY5055.pdf VIP
- 道闸项目报价清单.xlsx VIP
- 贵州省预防接种技能竞赛理论考试题库资料(含答案).pdf VIP
- AASHTO-LRFD-SI-2007(4)桥梁手册第四章中文版.doc VIP
- AASHTO LRFD Bridge Design Specifications(AASHTO LRFD桥梁设计规范).docx VIP
- 迅达常用备件识别号查询手册_Ae5.pdf VIP
- 数学学科业务工作报告.pdf VIP
- 2023年春学期人教版初中物理九年级下册教学进度表.docx VIP
- 基于AASHTO沥青混凝土路面设计方法的应用与研究.doc VIP
- 小班科学方方和圆圆教案反思.docx VIP
文档评论(0)