C++09第9章_模板剖析.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C09第9章_模板剖析

第9章 模板 9.1 模板的概念 9.2 函数模板 9.3 类模板 9.4 标准模板库STL 9.5 应用实例 1 模板的概念 1.1 类型的严格性与灵活性 1.2 解决冲突的途径 1.3 模板的概念 1.1 类型的严格性与灵活性 1.1 类型的严格性与灵活性 1.1 类型的严格性与灵活性 1.2 解决冲突的途径 1.2 解决冲突的途径 1.3 模板的概念 1.3 模板的概念 1.3 模板的概念 9.2 函数模板 2.1 函数模板的定义 2.2 函数模板的实例化 2.3 函数模板的重载 2.1 函数模板的定义 2.1 函数模板的定义 2.1 函数模板的定义 2.1 函数模板的定义 2.2 函数模板的实例化 9.2.2 函数模板的实例化 9.2.3 函数模板的重载 9.3 类模板 9.3.1 类模板定义 9.3.2 类模板的实例化 9.3.3 使用函数类型参数的类模板 9.3.4 使用默认参数的类模板 3.1 类模板定义 3.1 类模板定义 3.1 类模板定义 3.2 类模板的实例化 3.2 类模板的实例化 3.3 使用函数类型参数的类模板 3.4 使用默认参数的类模板 9.4 标准模板库STL 9.4.1 容器 9.4.2 迭代器 9.4.3 算法 4.1 容器 4.1 容器 4.1 容器 4.1 容器 4.1 容器 4.1 容器 4.1 容器 4.1 容器 4.1 容器 4.2 迭代器 4.2 迭代器 4.2 迭代器 4.2 迭代器 4.3 算法 2.容器的接口 3.顺序容器 顺序容器将一组具有相同类型的元素以严格的线性形式组织起来。分为vector、deque和1ist 3种类型。 3种顺序容器在某些方面是相似的。如,都有用于增加元素的insert成员函数,及用于删除元素的erase成员函数等,3种顺序容器的元素均可通过位置来访问。 3种容器具有各自不同的特点。例如, vector和deque都重载了操作符[ ],而1ist则没有,所以1ist容器不支持随机访问,除operator[ ]和at()函数外,1ist提供vector的其余功能。另外,1ist容器还提供成员函数splice()和merge()合并列表,sort()排列列表,push_front()和pop_front()追加和删除列表元素。deque容器就像vector和1ist的混合体,既支持vector的行为,又支持1ist的行为。 另一个重要区别是它们在时间和存储效率上不相同。 4.关联容器 关联容器具有根据一组索引来快速提取元素能力,其中元素可以通过键值(key)来访问。4种关联容器可以分成两组:set和map。 set是一种集合,其中可包含0个或多个不重复的和不排序的元素,这些元素被称为键值。 例如,set集合s {4,-99,50} 包含3个键值。与例7.9中的nums不同,不能通过下标来访问集合s。 map是一种映像,其中可包含0个或多个不排序的元素对,一个元素是不重复的键值,另一个是与键相关联的值。例如,map集合m {(first,4),(second,-99),(third,50)} 包含3对元素。每对元素由一个键值和相关联的值构成。 multiset是容许有重复键值的set,而multimap是容许有重复键值的map。 map和multimap容器的元素按关键字顺序排列,因此提供按关键字的快速查找。重载算符函数operator[]基于关键字的查找和插入。成员函数find(),count(),lower_bound()和upper_bound()基于元素键值的查找和计数。 set,multiset与map,multimap很相似。区别仅是set和multiset不支持下标操作。 简单地说,迭代器是面向对象版本的指针,STL算法利用迭代器对存储在容器中的元素序列进行遍历,迭代器提供了访问容器和序列中每个元素的方法。 虽然指针也是一种迭代器,但迭代器却不仅仅是指针。指针可以指向内存中的一个地址,通过这个地址就可以访问相应的内存单元。而迭代器更为抽象,它可以指向容器中的一个位置。 1.迭代器的分类 STL迭代器主要包括5种基本类别: 输入(input)迭代器、输出(output) 迭代器、前向(forward) 迭代器、双向(bidirectional)迭代器和随机访问(random access) 迭代器。 5种迭代器的类别层

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档