- 1、本文档共301页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章__C标准模块库(STL)及其程序设计
第6章 C++标准模块库(STL)及其程序设计
第6章 C++标准模块库(STL)及其程序设计
6.1 STL简介
6.2 vectors
6.3 STL与模板
6.4 迭代器
6.5 算法
6.6 容器
6.7 总结
第6章 C++标准模块库(STL)及其程序设计
6.1 STL 简 介
由于C/C++和Microsoft Windows控制的环境的声
望不断扩大,许多第三方销售商以提供例行程序的方
式发展极其有利可图的产品,这些库被设计用来存储
和处理数据。为了继续维护C/C++ 的生存能力,使其成
为值得选择的程序设计语言,ANSI/ISO C++通过严格
控制C/C++语言和正规定义,使其不断发展,并增加了
定义这些库的一个新方法,即标准模板库STL。
第6章 C++标准模块库(STL)及其程序设计
6.1.1 初识STL
简而言之,STL封装了C/C++ 的原始能力,再加上
数据结构中讲的先进高效的算法,绑定成了一个简单
实用的形式。
可以将STL看作一个可扩充的框架,其中包含一些
组件,如语言支持、诊断程序、通用工具、字符串、
本地化、容器、迭代符、算法、数值量和输入/输出。
其中,容器、迭代符、算法是STL的核心。
第6章 C++标准模块库(STL)及其程序设计
6.1.2 STL和HP公司
STL是由HP公司的Alexander Stepanov和Meng Lee
开发的,STL被期望成为保存和处理数据的一个标准
方法。主要编译器销售商正开始将STL结合到其产品
中。STL不只是作为一个次要的部分添加到世界上最
流行的程序设计语言中,它代表着一种革命性和能力。
STL为C++程序设计语言带来一组成熟得使人惊奇的类
属容器和算法,为C/C++增加了新的一面。
第6章 C++标准模块库(STL)及其程序设计
6.1.3 大众化的STL
从类属类到模板,然后再到最好的跨平台、可移
植的标准模板STL,是一个越来越方便程序员的过程。
STL越来越大众化。
第6章 C++标准模块库(STL)及其程序设计
6.1.4 STL总览
尽管STL的规模很大,并且其语法初看上去有些令
人生畏,但实际上一旦理解其构造以及使用的元素,
STL是很容易使用的。STL的核心是三个基础项,它们
分别称为容器(Container)、算法(Algoithm)和迭代器
(Iterator) 。这些库一起工作,可以以一种可移植的格式
产生常用算法的解决方案,比如创建数组、元素插入/
删除、排序和元素输出。STL甚至还进一步提供了内
部清晰、无缝、高效的输入/输出流(Iostream)集成和异
常处理。
第6章 C++标准模块库(STL)及其程序设计
6.1.5 STL基本组件
在概念上,STL包含三个分开的算法问题求解工具,
这三个最重要的部分是容器、算法和迭代器。容器是
数据在内存中的组织方法,例如数组、堆栈、队列、
链表或二叉树。然而,还有许多其他种类的容器,
STL包括那些最有用的容器。STL容器是用模板类实现
的,因此可以容易地定制它们以得到不同类型的容器。
第6章 C++标准模块库(STL)及其程序设计
所有的容器有共同的管理成员函数,在其模板中
定义insert( ) 、erase( ) 、begin( ) 、end( ) 、size( ) 、
capacity( )等,各容器有支持其自身需要的成员函数。
算法是应用在容器上以各种方法处理其内容的行
为或能力。例如,有对容器内容排序、复制、检索和
合并的算法。在STL 中,算法是由模板函数表现
文档评论(0)