C++标准模板库简介.pdf

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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种顺序容器,构成新的栈、队列和优先队

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档