C标准模块库STL及其程序设计.pptVIP

  1. 1、本文档共301页,可阅读全部内容。
  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文档。上传文档
查看更多
第6章 C++标准模块库(STL)及其程序设计 6.1 STL简介 6.2 vectors 6.3 STL与模板 6.4 迭代器 6.5 算法 6.6 容器 6.7 总结 6.1 STL 简 介 由于C/C++和Microsoft Windows控制的环境的声望不断扩大,许多第三方销售商以提供例行程序的方式发展极其有利可图的产品,这些库被设计用来存储和处理数据。为了继续维护C/C++的生存能力,使其成为值得选择的程序设计语言,ANSI/ISO C++通过严格控制C/C++语言和正规定义,使其不断发展,并增加了定义这些库的一个新方法,即标准模板库STL。 6.1.1 初识STL 简而言之,STL封装了C/C++的原始能力,再加上数据结构中讲的先进高效的算法,绑定成了一个简单实用的形式。 可以将STL看作一个可扩充的框架,其中包含一些组件,如语言支持、诊断程序、通用工具、字符串、本地化、容器、迭代符、算法、数值量和输入/输出。其中,容器、迭代符、算法是STL的核心。 6.1.2 STL和HP公司 STL是由HP公司的Alexander Stepanov和Meng Lee开发的,STL被期望成为保存和处理数据的一个标准方法。主要编译器销售商正开始将STL结合到其产品中。STL不只是作为一个次要的部分添加到世界上最流行的程序设计语言中,它代表着一种革命性和能力。STL为C++程序设计语言带来一组成熟得使人惊奇的类属容器和算法,为C/C++增加了新的一面。 6.1.3 大众化的STL 从类属类到模板,然后再到最好的跨平台、可移植的标准模板STL,是一个越来越方便程序员的过程。STL越来越大众化。 6.1.4 STL总览 尽管STL的规模很大,并且其语法初看上去有些令人生畏,但实际上一旦理解其构造以及使用的元素,STL是很容易使用的。STL的核心是三个基础项,它们分别称为容器(Container)、算法(Algoithm)和迭代器(Iterator)。这些库一起工作,可以以一种可移植的格式产生常用算法的解决方案,比如创建数组、元素插入/删除、排序和元素输出。STL甚至还进一步提供了内部清晰、无缝、高效的输入/输出流(Iostream)集成和异常处理。 6.1.5 STL基本组件 在概念上,STL包含三个分开的算法问题求解工具,这三个最重要的部分是容器、算法和迭代器。容器是数据在内存中的组织方法,例如数组、堆栈、队列、链表或二叉树。然而,还有许多其他种类的容器,STL包括那些最有用的容器。STL容器是用模板类实现的,因此可以容易地定制它们以得到不同类型的容器。 所有的容器有共同的管理成员函数,在其模板中定义insert( )、erase( )、begin( )、end( )、size( )、capacity( )等,各容器有支持其自身需要的成员函数。 算法是应用在容器上以各种方法处理其内容的行为或能力。例如,有对容器内容排序、复制、检索和合并的算法。在STL中,算法是由模板函数表现的,这些函数不是容器类的成员函数,而是独立的函数。的确,STL的令人吃惊的特点之一就是其算法如此通用,不仅可以将其用于STL容器,而且可以用于普通的C++数组或任何其他应用程序指定的容器。 一组标准的算法为容器中的对象提供了检索、复制、排序、变换和数值操作功能。同一算法可用来为所有的对象类型的所有容器执行某一项特别的操作。 一旦选定一种容器类型和数据行为,那么下面惟一要做的是用迭代器使其相互作用。可以把迭代器看作一个指向容器中元素的普通指针,可以像递增一个指针那样递增迭代器,使其依次指向容器中每一个后继的元素。迭代器是STL的一个关键部分,因为它将算法和容器连在一起。 6.1.6 其他STL组件 除了容器、算法和迭代器之外,STL还定义了另外几种组件: (1) 分配算符:为单个容器管理内存分配。 (2) 谓词:它们在本质上是一元或二元的,即其作用于一个或两个操作数并总是返回“真”或“假”。 (3) 比较函数:一种独特的二元谓词,比较两个元素并只在第一个参数小于第二个时返回“真”。 (4) 函数对象:包括加、减、乘、除、取模、取反、等于、不等于、大于、大于或等于、小于、小于

文档评论(0)

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

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

1亿VIP精品文档

相关文档