- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章标准模板库(STL)讲解
第14章 标准模板库 标准模板库(STL,Standard Template Library)是一组通用容器(数据结构)和算法的集合,它主要利用模板技术实现的。它为开发者提供了很多标准化的组件,在开发程序中只需要直接利用这些组件即可。 14.1 泛型化编程与STL介绍 泛型化编程是一种较为新的技术,目前已经被大部分语言支持。通过泛型化编程可以实现代码的通用性并提高代码的效率。在C++中,通过STL来实现泛型化编程的。 14.1.1 泛型化编程的概念 泛型化编程思想诞生于20世纪70年代后半期。目前,泛型化编程已经被作为一门单独的技术来进行研究,很多高级语言都开始支持泛型化编程,但是实现泛型的方式各不相同。泛型化编程在1987年才运用于C++上,C++支持泛型化编程是通过模板技术来实现的,其中最典型的就是STL。 14.1.2 C++标准库与STL的内容 C++编译系统除了支持语言本身外,还提供C++标准中规定的标准库函数的实现。标准库中提供了C++程序的基本设施。C++标准函数库和STL主要包含的内容,如图所示。 14.2 STL的使用 STL功能强大,使用它能够快速地开发出高效率的程序。在使用STL时,主要涉及到容器、迭代器、算法等概念和用法。 14.2.1 容器 在数据结构的课程中可以知道,经典的数据结构数量是有限的。但是在实际开发中却常常重复着去实现这些数据结构的代码。这些代码大部分内容是类似的,不同之处只是在为了适应不同的数据和操作上进行细微的改动。STL容器其实已经提供了这些,对最常用的数据结构提供了非常好的支持。 1.容器的构成 2.声明容器 3.编译中的问题 14.2.2 迭代器 迭代器从本质上讲是指针的泛化。通过迭代器可以以相同的方式来处理不同的数据结构(即容器)。迭代器是容器和算法之间的纽带,使算法不必关心各种数据结构的具体细节。 14.2.3 算法 算法部分主要由头文件algorithm,numeric和functional组成。其中,algorithm是由大量的模板函数组成的,这些函数大部分都是独立的,其中常用到的功能范围涉及到比较、交换、查找、遍历、复制、修改、移除、反转、排序、合并等;numeric包括几个在序列上面进行简单数学运算的模板函数,如加法和乘法在序列上的一些操作;functional中则定义了一些模板类,用以声明函数对象。 14.3 本章实例 建立一个用户输入的单词库,统计单词出现的频度,能对这些单词进行快速地查找。 14.4 小结 本章主要介绍了STL的内容以及其主要组件的基本概念和使用方法。STL是一个非常复杂也非常强大的系统,提供了众多实用的数据结构和算法。熟练地掌握它的使用可以大大简化程序的开发,并且使开发程序以及程序本身的效率得到很大的提高。 1-*
原创力文档


文档评论(0)