- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C标准模板库简介
高质量C++编程
——C++标准模板库简介
STL的组成
STL的6大组件:
容器(containers):容纳各种元素的结构,如Vector、List、
Map等,用来存储各种类型的数据。
算法(algorithms):各种常用的算法,如sort、search、copy
等,提供了对容器的各种常用操作。
迭代器(iterators):一个将容器和算法联系起来的非常重要的
组件,也就是通常所说的泛型指针。
函数对象(functors):行为类似函数,可以为算法的提供某种
操作策略(policy)。
适配器(adapters):一种用来修饰容器、迭代器或函数对象界
面的改造器。
分配器(allocators):负责内存空间的配置与管理,保证容器
空间的正确分配。
STL 主要组件的关系
仓库 容器 适配器
原料 数 据 扩建
批地盖房
分配器
适配器
工人 迭代器
技师
算法
车床
刀具
适配器
函数对象
新刀具
容器
容器是容纳、包含一组元素对象的类,由于元素对象的类型
形形色色,容器类应是类模板。
分类:可分为顺序容器与关联容器。
七种基本容器:
向量(vector )、双端队列(deque)、列表(list)、集
合(set )、多重集合(multiset)、映射(map)和多重
映射(multimap)
迭代器
迭代器是面向对象版的指针,它们提供了访问容器或序列中每
个元素的方法。它也应该是类模板。
迭代器通俗地讲,就是“定位器”或“映射器” ,是指针的泛
化。真正的指针指的是内存的绝对位置;迭代器指的是元素在
容器中的相对位置。
由于容器的结构各不相同,STL的每一个容器类模板中,都定
义了一组对应的迭代器类,它们各为其主,不可互换。
借助迭代器,算法函数可以访问容器中指定位置上的元素,而
无需关心容器的结构和元素的具体类型。
算法
算法本身是一种函数模板。
C++标准模板库中包括70多个算法。
其中包括查找算法,排序算法,消除算法,记数算法,比
较算法,变换算法,置换算法和容器管理等等。
这些算法的最重要的特性就是它们的统一性,即完全忽略了容
器的结构差异,用统一并且可以广泛应用于不同类型的对象
和内置的数据类型。
函数对象
是行为类似函数的对象,它可以勿需参数,也可以带有若干参数
,其功能是获取一个值,或者改变操作的状态。
任何普通的函数和任何重载了“调用运算符”operator()的类的
对象都满足函数对象的特征。
STL中也定义了一些标准的函数对象。
以功能划分,可以分为算术运算、关系运算、逻辑运算三大类。
为了调用这些标准函数对象,需要包含头文件functional。
可是用户往往需要定义自己的函数对象。
适配器
适配器是一种接口类,为已有的类提供新的接口。
目的是为简化或约束或使之安全或隐藏或改变被修改类提供的
服务集合。
适配器分为三种:
容器适配器
用来扩展、改变3种顺序容器,构成新的栈、队列和优先队
您可能关注的文档
最近下载
- 2024 年广西初中学业水平模拟测试(三)化学.docx VIP
- 小学数学1~6年级《数学广角》专题复习资料.doc VIP
- 全国优质课一等奖大学本科口腔医学《牙及牙槽外科-牙拔除术和陌生牙拔除术》精美课件.pptx
- 辽宁省六校协作体2022-2023学年高一下学期6月月考物理试题.docx VIP
- 2024年【全国】少先队知识竞赛考试必备题库及答案.docx VIP
- 首诊负责制PPT课件.pptx
- 正版高中化学必修课后习题标准答案人教版样本[整理].pdf VIP
- 《与妻书》优质课一等奖课件.pptx
- 机房改造工程方案.pptx
- 工业分析检验职业技能竞赛理论考试题库500题(含答案).docx
文档评论(0)