set,map和vector课件讲解.pptVIP

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

* * * * * * * * * 衡阳师范学院计算机系 * 在vector对象中插入元素; vectorint::iterator p = v1.begin(); p = p+2; int a[10]; v1.insert(p, a , a+10); 衡阳师范学院计算机系 * 在vector对象中删除元素; v1.erase(p, p+3); v1.pop_back(); 衡阳师范学院计算机系 * 修改vector对象中的内容; v1[1] = v1[1] * v1[1] v1[2] = v1[2] + 100 衡阳师范学院计算机系 * 使用sort排列算法 #includealgorithm sort(v.begin(),v.end()); 衡阳师范学院计算机系 * 使用reverse反向排列算法 #includealgorithm reverse(v.begin(),v.end()); 衡阳师范学院计算机系 * 清除vector对象中的所有内容; v.clear() * * * * * * * * * * * * * * * * * * * * * * * * * * 衡阳师范学院计算机系 * STL在C++中称为标准模板库。STL定义了一系列用途广泛的模板类和模板函数,它们可以用来实现许多通用的算法和数据结构。 衡阳师范学院计算机系 * 标准模板库STL的核心内容是3个基本组件:容器、算法和迭代器。STL将这些组件结合在一起为许多程序设计难题提供实际可行的解决办法。 衡阳师范学院计算机系 * Set集合容器 衡阳师范学院计算机系 * set集合容器实现了红黑树(Red-Black Tree)的平衡二叉树的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置。以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树的键值;另外,还得确保左子树的高度与右子树的高度相等,这样,二叉树的高度最小,从而检索速度最快。 注意:set集合不会重复插入相同键值的元素,采取忽略处理。 衡阳师范学院计算机系 * 26 12 37 6 16 29 32 2 15 20 30 80 上图是一个典型的平衡检索二叉树 衡阳师范学院计算机系 * 平衡二叉检索树的检索使用中序遍历算法,检索效率高于vector、deque和list等容器。 Set 的特点 set容器中,插入元素时,就会自动将元素按键值由小到大的顺序排列,并没有重复的键值。 对于set容器中的键值,不可直接去修改。所以,构造set集合的主要目的就是为了快速检索。 衡阳师范学院计算机系 * 创建一个set集合对象 #includeset using namespace std; setint v1; setstring v2; 衡阳师范学院计算机系 * 采用insert()方法插入元素 采用insert()方法把元素插入集合中去,插入的具体规则在默认的比较规则下,是按元素值从小到大插入。 set1-1.cpp 衡阳师范学院计算机系 * 采用insert()方法插入元素 采用insert()方法把元素插入集合中去,如果自己指定了比较规则的函数,则按自定义比较规则函数插入。 set1-2.cpp 衡阳师范学院计算机系 * 采用insert()方法插入元素 如果元素是结构体,可以直接把比较函数写在结构体内。 set1-3.cpp 衡阳师范学院计算机系 * 元素的反向遍历 使用反向迭代器reverse_iterator可以反向遍历元素,输出的结果正好是集合元素的反向排序结果。它需要用到rbegin()和rend()两个方法,它们分别给出了反向遍历的开始位置和结束位置。 set2.cpp 衡阳师范学院计算机系 * 元素的删除遍历 与插入元素的处理一样,集合具有高效的删除处理功能,并自动重复调整内部的红黑树的平衡。删除的对象可以是某个迭代器位置上的元素、等于某键值的元素、一个区间上的元素和清空集合。 set3.cpp 衡阳师范学院计算机系 * 元素的检索 使用find()方法对集合进行搜索,如果找到查找的键值,则返回该键值的迭代器位置,否则,返回集合最后一个元素后面的一个位置,即end()。 set4.cpp 衡阳师范学院计算机系 * Map映照容器 衡阳师

文档评论(0)

33ggoup + 关注
文档贡献者

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

1亿VIP精品文档

相关文档