数据结构与算法(C++语言版)课件 第11章 集合unordered_set类.pptx

数据结构与算法(C++语言版)课件 第11章 集合unordered_set类.pptx

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

第11章集合与unordered_set类2025/6/171集合的特点;unordered_set类;集合的基本操作;集合与数据过滤;集合与获得随机数;重载hash()函数。

11.1集合的特点2025/6/172?

2025/6/17311.1集合的特点集合的主要操作(1)集合的并集?(2)集合的交集?

2025/6/17411.1集合的特点集合的主要操作(3)集合的差集(4)集合的对称差??

11.2unordered_set类2025/6/175std::unordered_set是C++(C++11开始)标准模板库(StandardTemplateLibrary,STL)中的模板类,用于实现基于哈希映射的集合。需要注意,当std使用作用域运算符(也称解析运算符))“::”访问unordered_set时不要误写为unordered_Set,即不可以将set的首写字母写成大写的S。

11.2unordered_set类2025/6/176

2025/6/17711.2unordered_set类1.创建空集合使用std::unordered_set类创建集合时,必须要指定模板类中的参数类型的具体类型,类型是可以是C++允许的数据类型,比如int、float、char和类等,即指定集合中元素的数据的类型。例如,指定集合intSet的元素类型是int类型:std::unordered_setintintSet;

2025/6/17811.2unordered_set类2.用已有集合创建集合可以用其他相同数据类型集合中的元素,例如使用intSet中的元素创建一个新集合setNew:std::unordered_setintnewSet(intSet);集合setNew的元素和intSet的相同。如果集合setNew修改了元素不会影响intSet的元素,同样,如果集合intSet修改了元素也不会影响setNew的元素。

2025/6/17911.2unordered_set类3.用数组或其它数据结构创建集合?

2025/6/171011.2unordered_set类4.集合的初始化创建集合时,也可以用一对大括号括起给集合的初始元素,例如:std::unordered_setintinitSet={22,55,66};

11.3集合的基本操作2025/6/1711?

2025/6/171211.3集合的基本操作1.添加?

2025/6/171311.3集合的基本操作2.查询(1)find(elm):在集合中查找elm元素,如果找到返回指向此元素的const迭代器(不允许使用这样的迭代器修改元素),否则不指向任何元素(指向的位置对用户程序是未知的)。(2)count(value):返回集合中和value相等的元素的数量。(3)lower_bound(value):返回指向第一个不小于value元素的const迭代器。(4)upper_bound(value):返回指向第一个大于value元素的const迭代器。(5)begin():返回指向最小值元素的const迭代器。(6)end():返回指向最大值元素位置后的const迭代器。(7)empty():使用empty()函数判集合是否是空集合,如果是空集合返回1(true),否则返回0(false)。。(8)size():返回集合里元素的数量。

2025/6/171411.3集合的基本操作3.删除(1)erase(elm):从集合中删除元素elm。(2)erase(iter):从集合中删除迭代器iter指向的元素。(3)clear():删除集合中的所有元素,使之成为空集。

2025/6/171511.3集合的基本操作例子1集合的基本运算ch11_1.cpp?

11.4集合与数据过滤2025/6/1716?

2025/6/171711.4集合与数据过滤例子2使用集合过滤数据ch11_2.cppch11_2.cpp使用集合过滤数据。

11.5集合与获得随机数2025/6/1718?

2025/6/171911.5集合与获得随机数例子3ch11_3.cpp?randomBySet.cpp

11.6重载hash()函数2025/6/1720在C++中,如果要将自定义的类作为std::unordered_set类的实例的元素,用户程序需要重载哈希函数的(重载哈希函数的原则见第10章10.8节)

2025/6/172111.6重载hash()函数例子4重载hash()函数ch11_4.cppch11_4.cpp在Student类内定义了一个名为Hash的内部结构体,重载了operator()函数作为哈希函数。在mai

文档评论(0)

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

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

1亿VIP精品文档

相关文档