网站大量收购独家精品文档,联系QQ:2885784924

STLATLWTL之间的联系和区别.pdfVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STLATLWTL之间的联系和区别.pdf

STL,ATL,WTL 之间的联系和区别 发表于 2010 年06 月28 日AlphaJay 的空间 /alphajay/blog/5774 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 的基本手段 加上这些应

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档