轻松学C++之标准模板库STL课件.ppt

轻松学C++之标准模板库STL课件.ppt

ID:57036225

大小:1.39 MB

页数:61页

时间:2020-07-27

轻松学C++之标准模板库STL课件.ppt_第1页
轻松学C++之标准模板库STL课件.ppt_第2页
轻松学C++之标准模板库STL课件.ppt_第3页
轻松学C++之标准模板库STL课件.ppt_第4页
轻松学C++之标准模板库STL课件.ppt_第5页
资源描述:

《轻松学C++之标准模板库STL课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第16章标准模板库STLSTL(StandardTemplateLibrary),即标准模板库,是一个具有工业强度的、高效的C++程序库。该库包含了诸多在计算机科学领域中常用的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应用框架,高度体现了软件的可复用性。本章将详细介绍STL的相关知识。16.1标准模板库概述标准模板库STL是最新的C++标准函数库中的一个子集,这个庞大的子集占据了整个库大约80%的分量,本节将简要介绍标准模板库。16.1.1C++标准库一般来说,C++标准库可分为两部分,如图16-1所示。图1

2、6-1C++标准库C++标准库为C++程序员提供了一个可扩展的基础性框架,用户可以通过继承C++标准库获得极大地便利。C++标准库主要由几个组件构成,如图16-2所示。图16-2C++标准库主要的组件构成在C++标准库中,实现容器和算法的部分就是标准模板库(STL),其中,迭代器让容器和算法这两部分共同工作。整个C++标准库的组成如图16-3所示。图16-3整个C++标准库的组成16.1.2STL的形成STL是以模板为基础的一套标准库,是C++标准库的一个组成部分。可以将其看做一套支持泛型编程的、兼顾效率和易用性、设计精巧的工

3、具集。其形成经过了二三十年的发展,并拥有各种实现版本,STL历史的流程图如图16-4所示。图16-4STL历史的流程图16.1.3STL的组成STL是以模板形式提供的编程组件,解决了很多基础性的编程问题,如数据的组织、查找、计算等。通过使用STL,可以让开发人员将主要精力集中在程序的高层逻辑上,而不是底层的操作,这样可以较大地提高开发效率。一般来说,STL由六部分组成,如图16-5所示。图16-5STL的组成各个部分的关系如图16-6所示。图16-6STL各组成部分之间的关系在C++标准中,STL被组织为13个头文件:

4、orithm>、。16.1.4STL的引入前面讲到了STL的组成,现在通过两个示例来看一下STL在实际程序中起到什么作用。【示例16-1】下面程序中调用了STL中的函数,其实现代码及结果如图16-7所示。图16-7程序中调用了STL中的函数实例在图16-7的代码中,使用了push_back()、begin()和end()函

5、数,而这些函数在程序中并没有被定义过,却可以使用,这是因为这些函数已经被头文件vector.h所包含,如同strcpy()函数被string.h头文件所包含一样。【示例16-2】该程序使用了STL的各种主要元素,包括容器、迭代器、算法、函数对象。通过这个程序,可以对STL的使用有一个整体的印象,其实现代码及结果如图16-8所示。图16-8使用STL的各种主要元素实例16.2算法STL提供了大约100个实现算法的模板函数,用户通过调用一两个算法模板就可以完成所需要的功能,大大地提高了用户使用C++进行程序设计的效率。一般来说,S

6、TL中的算法部分主要由头文件组成。其中,头文件由一大堆模板函数组成,常用的函数涉及比较、交换、查找等。STL中包含了大量的常用算法,供程序员在需要的时候直接调用,只需知道该算法实现函数在哪个头文件下即可。【示例16-3】下面程序使用STL算法中一个最为常用的算法——排序。其实现代码及结果如图16-9所示。图16-9使用排序算法在图16-9的代码中,使用到了头文件,对输出的向量分别按照其第一个

7、元素值和第二个元素值进行升序排列。可以看到,代码中并没有定义sort()函数,但在程序中两次调用了该函数,说明该函数已被头文件所包含。这两处调用的其参数个数是不同的,说明该函数被重载了。16.3容器在实际程序开发过程中,数据结构本身的重要性不亚于操作与数据结构的算法的重要性,当程序中存在对时间要求很高的部分时,数据结构的选择就显得更加重要。STL容器允许重复利用已有的实现构造自己特定类型下的数据结构,通过设置一些模板类,这些模板的参数允许用户指定容器中元素的数据类型,从而可以提高编程效率。16.3.1容器概述容器部分主要由头文

8、件组成。对于常用的一些容器和容器适配器(可以看做由其他容器实现的容器),如表16-1所示。表16-1容器与头文件对应关系STL容器中容纳了大量的数据结构模板,前面使用的vec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。