- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本文来自:/~yhf/UsingSTL.htm
三十分钟掌握STL
这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了
两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有
所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:kary
contact:karymay@163.net
STL概述
STL概述
SSTTLL概概述述
STL 的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确
实使得STL 变得非常通用。例如,由于STL 的sort()函数是完全通用的,你可以用它来操作
几乎任何数据集合,包括链表,容器和数组。
要点
STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL 算法以后接一对圆
括弧的方式表示,例如sort()。
STL 另一个重要特性是它不是面向对象的。为了具有足够通用性,STL 主要依赖于模板
而不是封装,继承和虚函数(多态性)——OOP的三个要素。你在STL 中找不到任何明显的
类继承关系。这好像是一种倒退,但这正好是使得STL 的组件具有广泛通用性的底层特征。
另外,由于STL 是基于模板,内联函数的使用使得生成的代码短小高效。
提示
确保在编译使用了STL 的程序中至少要使用-O 优化来保证内联扩展。STL 提供了大量
的模板类和函数,可以在OOP 和常规编程中使用。所有的STL 的大约50个算法都是完全通
用的,而且不依赖于任何特定的数据类型。下面的小节说明了三个基本的STL 组件:
1) 迭代器提供了访问容器中对象的方法。例如,可以使用一对迭代器指定 list
或vector 中的一定范围的对象。迭代器就如同一个指针。事实上,C++的指针也
是一种迭代器。但是,迭代器也可以是那些定义了operator*()以及其他类似于指
针的操作符地方法的类对象。
2) 容器是一种数据结构,如list,vector,和deques ,以模板类的方法提供。
为了访问容器中的数据,可以使用由容器类输出的迭代器。
3) 算法是用来操作容器中的数据的模板函数。例如,STL 用sort()来对一个vector
中的数据进行排序,用find()来搜索一个list 中的对象。函数本身与他们操作的
数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据
结构上使用。
头文件
为了避免和其他头文件冲突, STL 的头文件不再使用常规的.h 扩展。为了包含标准的
string类,迭代器和算法,用下面的指示符:
#includestring
#includeiterator
#includealgorithm
如果你查看STL 的头文件,你可以看到象iterator.h和stl_iterator.h这样的头文件。由于
这些名字在各种STL 实现之间都可能不同,你应该避免使用这些名字来引用这些头文件。为
了确保可移植性,使用相应的没有.h后缀的文件名。表1列出了最常使用的各种容器类的头文
件。该表并不完整,对于其他头文件,我将在本章和后面的两章中介绍。
1.STL
1.STL
表11..SSTTLL头文件和容器类
#include
#include ContainerClass
##iinncclluuddee ContainerClass
CCoonnttaaiinneerrCCllaassss
deque deque
list
文档评论(0)