关联容器用法总结.docVIP

  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文档。上传文档
查看更多
关联容器用法总结

关联容器总结 关联容器和顺序容器的本质区别在于:关联容器通过键(key)存储和读取元素,二顺序容器则通过元素在容器中的位置顺序存储和访问元素。 两个基本的关联容器类型是map和set,map的元素以键-值(key—value)对的形式组织:键用作元素在map中的索引,而值则表示所存储和读取的数据。set仅包含一个键,并有效地支持关于某个键是否存在的查询。 set和map类型的对象所包含的元素都与有不同的键,不允许为同一个键添加第二个元素。如果一个键必须对应多个实例,则需使用multimap或multiset类型,这两种类型允许多个元素拥有相同的键。 1.关联容器的类型: map :关联数组:元素通过键值来存储和访问 set :大小可变的集合,支持通过键实现的快速读取 multimap:支持同一个键多次出现的map类型 multiset :支持同一个键多次出现的set类型 注:一般,如果希望有效地存储不同值的集合,那么使用set容器比较合适,而map容器则更适用于需要存储(乃至修改)每个键所关联的值的情况。 2.pair类型 pair类型与容器一样,也是一种模板类型。但与之前介绍的容器不同,在创建pair对象时,必须提供两个类型名:pair对象所包含的两个数据成员各自对应的类型名字,这两个类型不必相同。pair类型定义在utility头文件中。 pair类型提供的操作: (1)pairT1,T2p1 创建一个空的pair对象,它的两个元素分别是T1和T2类型,采用值初始化。 (2)pairT1,T2p1(v1,v2) 创建一个pair对象,它的里两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2 (3)make_pair(v1,v2) 以v1和v2值创建一个新的pair对象,其中元素类型分别是v1和v2类型 (4)p1p2 两个pair对象之间的小于运算,其定义遵循字典次序:如果p1.firstp2.first或者!(p2.firstp1.first)p1.secondp2.second,则返回true。 (5)p1==p2 如果两个pair对象的first和second成员一次相等,则这两个对象相等。该运算使用其元素的==操作符。 (6)p.first 返回p中的名为first的共有数据成员 (7)p.second 返回p中的名为second的共有数据成员 3.关联容器与顺序容器 关联容器共享大部分但并非全部的顺序容器操作。关联容器不提供front、push_front、pop_front、back、push_back以及pop_back操作。顺序容器和关联容器公共的操作包括下面几种: 顺序容器中描述的关系运算 顺序容器中描述的begin、end、rbegin、rend操作 顺序容器中列出的类型别名的操作。注意,这里对于map容器,value_type并非元素的类型,而是描述键及其关联值类型的pair类型。 顺序容器中描述的swap和复制操作,但关联容器不支持assign函数 顺序容器中列出的clear和erase操作,但关联容器的erase运算返回void类型 顺序容器中列出的关于容器大小的操作,但resize函数不能用于关联容器。 除了上面列出的操作外,关联容器还提供了其他的操作,而对于顺序容器也提供相同的操作,关联容器也重新定义了这些操作的含义或返回类型,其中的差别在于关联容器中使用了键。 4.map类型——构造函数 (1)mapk,vm 创建一个名为m的空map对象,其键值和值的类型分别为k和v。 (2)mapk,vm(m2)创建m2的副本m,m和m2必须有相同的键类型和值类型。 (3)mapk,vm(b,e)创建map类型的对象m,存储迭代器b和e标记范围内的所有元素的副本。元素的类型必须转换为pairconst k,v. 在实际应用中键类型必须定义操作符,而且该操作符应能够正确地工作。 5.map类型——map定义的类型(其中key_type,mapped_type是map额外定义的两种类型) (1)mapK,V::key_type map容器map中,用做索引的键类型 (2)mapK,V::mapped_type 容器map中,键所关联的值的类型 (3)mapK,V::value_type 一个pair类型,它的first元素具有const mapK,V::key_type 类型,而second元素则为mapK,V::mapped_type类型 注:谨记value_type是pair类型,它的值成员可以修改,但键成员不能修改。 6.map类型——使用下标和使用迭代器的解引用访问map对象: 如同其他下标操作符一样,map的下标也是用索引(其实就是键)来获取改

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档