[信息与通信]02-STL.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[信息与通信]02-STL

西安电子科技大学计算机学院 Algorithm(算法) 算法列表 西安电子科技大学计算机学院 Algorithm(算法) 算法列表 西安电子科技大学计算机学院 Algorithm(算法) 算法列表 西安电子科技大学计算机学院 序列式容器 Lists 示例 用list前,必须包含头文件list  西安电子科技大学计算机学院 迭代器(Iterator)简述 指针与数组 指针与其它数据结构呢?比如说链表? 存储空间是非连续的。不能通过对指向这种数据结构的指针做累加来遍历。 能不能提供一个行为类似指针的类,来对非数组的数据结构进行遍历呢?这样我们就能够以同样的方式来遍历所有的数据结构(所有容器)。 用指针遍历数组 西安电子科技大学计算机学院 迭代器(Iterator)简述 迭代器与容器 通过迭代器,我们可以用相同的方式来访问、遍历容器。 每种容器都必须提供自己的迭代器 容器提供一些函数以获得迭代器并以之遍历所有元素。 用迭代器遍历容器 泛型抽象 西安电子科技大学计算机学院 迭代器(Iterator)简述 迭代器的概念 迭代器是一个“可遍历STL容器内全部或部分元素”的对象。 一个迭代器指出容器中的一个特定位置。 具有遍历复杂数据结构的能力。 西安电子科技大学计算机学院 迭代器(Iterator)简述 迭代器的基本操作 用法和指针一样,其实指针就是一种迭代器 运算符重载 西安电子科技大学计算机学院 迭代器(Iterator)简述 迭代器示例 西安电子科技大学计算机学院 关联式容器 Sets/Multisets 内部的元素依据其值自动排序 Set内的相同数值的元素只能出现一次,Multisets内可包含多个数值相同的元素。 内部由二叉树实现,便于查找。 西安电子科技大学计算机学院 关联式容器 Sets/Multisets 用set/multiset前,必须包含头文件set  不能用push_back…因为是自动排序的。 西安电子科技大学计算机学院 关联式容器 Maps/Multimaps Map的元素是成对的键值/实值,内部的元素依据其值自动排序。 Map内的相同数值的元素只能出现一次,Multimaps内可包含多个数值相同的元素。 内部由二叉树实现,便于查找。 西安电子科技大学计算机学院 关联式容器 Maps/Multimaps 用map/multimap前,必须包含头文件map  返回一个pair对象 西安电子科技大学计算机学院 容器的共通能力 所有容器提供的都是value语意,而非reference语意。容器执行插入元素的操作时,内部实施拷贝动作。所以STL容器内存储的元素必须能够被拷贝(必须提供拷贝构造函数)。 每个容器都提供可返回迭代器的函数,运用返回的迭代器就可以访问元素。 通常STL不会丢出异常。要求使用运行者对确保传入正确的参数。 西安电子科技大学计算机学院 容器的共通操作 初始化--每个容器都提供了一个默认构造函数,一个拷贝构造函数 以某个数组的元素为初值完成初始化。 以某个容器的元素为初值完成初始化。 西安电子科技大学计算机学院 容器的共通操作 与大小相关的操作函数 返回迭代器的函数 西安电子科技大学计算机学院 容器的共通操作 比较操作 西安电子科技大学计算机学院 Vector容器详解 大小(Size)和容量(Capacity) capacity(),传回vector能够容纳的元素个数。 size(),传回vector内现有元素的个数。 如果capacity不够用,则重新分配内存 使和vector相关联的pointer, reference, iterator全部失效。 很费时间。 西安电子科技大学计算机学院 Vector容器详解 赋值操作 元素存取 西安电子科技大学计算机学院 Vector容器详解 插入和删除操作 西安电子科技大学计算机学院 各个容器的使用时机 西安电子科技大学计算机学院 Iterator(迭代器) 迭代器的作用 能够让迭代器与算法不干扰的相互发展,最后又能无间隙的粘合起来。 重载了*,++,==,!=,=运算符。用以操作复杂的数据结构。 容器提供迭代器,算法使用迭代器。 西安电子科技大学计算机学院 Iterator(迭代器) 一个简单的例子 容器提供迭代器 算法使用迭代器 西安电子科技大学计算机学院 Iterator(迭代器) 迭代器的分类 不同容器提供自己的迭代器,所以不同迭代器具有不同的能力。 不同的算法需要不同的迭代器的能力;相同的算法需要根据迭代器的能力不同而做相应的优化。 Vector的内部是数组 List的内部是双向链表 因此List提供了自己的sort成员函数 西安电子科技大学计算机学院 Iterator(迭代器) 迭代器的

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档