当前位置: 首页 > news >正文

沈阳网站建设的价格百度一下官网网址

沈阳网站建设的价格,百度一下官网网址,seo关键词排名优化矩阵系统,沧州1 1 网站建设文章目录 前言一、set概念介绍二、set的使用1. 插入删除相关2. 查找相关1)find2)count3)lower_bound与upper_bound4)equal_range 三、set的值是不能修改的原理四、基于哈希表的set总结 前言 根据应用场景的不同,STL总…

文章目录

  • 前言
  • 一、set概念介绍
  • 二、set的使用
    • 1. 插入删除相关
    • 2. 查找相关
      • 1)find
      • 2)count
      • 3)lower_bound与upper_bound
      • 4)equal_range
  • 三、set的值是不能修改的原理
  • 四、基于哈希表的set
  • 总结


前言

根据应用场景的不同,STL总共实现了两种不同结构的管理式容器:树型结构与哈希结构。树型结构的关联式容器主要有四种:map、set、multimap、multiset。这四种容器的共同点是:使用平衡搜索树(即红黑树)作为其底层结果,容器中的元素是一个有序的序列。下面一依次介绍每一个容器。

首先是set相关:gogogo

在这里插入图片描述


一、set概念介绍

在这里插入图片描述

set就是key_tree的模型:

  1. set是按照一定次序存储元素的容器
  2. 在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。
    set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。
  3. 在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行
    排序。
  4. set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对
    子集进行直接迭代。
  5. set在底层是用二叉搜索树(红黑树)实现的

注意:

  1. 与map/multimap不同,map/multimap中存储的是真正的键值对<key, value>,set中只放 value,但在底层实际存放的是由<value, value>构成的键值对。
  2. set中插入元素时,只需要插入value即可,不需要构造键值对。
  3. set中的元素不可以重复(因此可以使用set进行去重)。
  4. 使用set的迭代器遍历set中的元素,可以得到有序序列
  5. set中的元素默认按照小于来比较
  6. set中查找某个元素,时间复杂度为: l o g 2 n log_2 n log2n
  7. set中的元素不允许修改,它的普通迭代器和const迭代器都是const迭代器
  8. set中的底层使用二叉搜索树(红黑树)

二、set的使用

1. 插入删除相关

在这里插入图片描述

首先,set的插入默认是排序 + 去重
在这里插入图片描述

set的删除:有就删,没有就不做为:
在这里插入图片描述


2. 查找相关

在这里插入图片描述

1)find

首先是find: 如果找到了就会返回对应结点的迭代器,没找到就会返回end()
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


2)count

然后是count:count的作用是返回当前值出现的次数:
对于set来说count并没有太大的作用,可以说和find的作用是一样的。

在这里插入图片描述

但是对于multiset来说就有意义了,因为set是默认去重的,因此插入相同的元素只有一个,但是multiset默认是不去重的,因此count可以统计个数。

在这里插入图片描述

3)lower_bound与upper_bound

lower_bound与upper_bound用来查找一段区间:[low, up)

是一段左闭右开的区间,因为只有这样,我们用迭代器访问的时候
itlow != itup才能不漏最后一个元素。

因此:对于lower_bound找的是>=x的迭代器,
在这里插入图片描述

对于upper_bound找的是>x的迭代器。
在这里插入图片描述

如果没找到就是end()。

对于等于的情况:
在这里插入图片描述

对于的所找的值 在set中找不到:
在这里插入图片描述

4)equal_range

equal_range作用是找到相同的值的一段迭代区间,同样是左闭右开的区间。
它的返回值是一个pair,pair是两个值做组成的一对,其中first是左区间,second是右区间。
在这里插入图片描述
因此我们接收返回值需要用pair<set::const_iterator, const set::const_iterator>,pair中每一个都是set类型的const_iterator,也可以用auto接收。

这里对于set来说,因为set会去重,所以其实equal_range对于set来说没什么意义。
在这里插入图片描述

但是对于multiset来说,就有意义了,nultiset不去重,equal_range就可以返回相同的值的区间,那么我们就可以对这个区间执行删除或者其他操作了。
在这里插入图片描述


三、set的值是不能修改的原理

set只是key的模型,set是不能修改的,它的原理是set的迭代器和const迭代器都是const迭代器。
在这里插入图片描述

在这里插入图片描述


四、基于哈希表的set

除了上述两个版本,还有两个基于哈希表的版本的set.
在这里插入图片描述

这张图展示了 C++ 中的四种无序关联容器(Unordered Associative Containers)。这些容器底层是基于哈希表实现的,所以元素是无序存储的。以下是每种容器的简要介绍:

  1. unordered_set

    • 用于存储唯一的元素集合,每个元素只能出现一次。
    • 适合用于快速查找一个元素是否存在的场景。
  2. unordered_multiset

    • unordered_set 类似,但允许存储重复的元素。
    • 适合用于需要存储非唯一元素的集合。
  3. unordered_map

    • 存储键值对(key-value pairs),每个键(key)是唯一的。
    • 可用于快速查找一个键对应的值。
  4. unordered_multimap

    • unordered_map 类似,但允许存储重复的键。
    • 适合用于需要一个键对应多个值的场景。

由于这些容器基于哈希表,因此它们的查找、插入和删除操作通常具有常数时间复杂度(O(1))。
但是他们是无序的。


总结

到这里set的内容就结束啦,创作不易,求各位大大多多支持~~~😘😘😘
在这里插入图片描述

http://www.tj-hxxt.cn/news/80163.html

相关文章:

  • 网站如何做网站解析南宁网站建设公司排行
  • wordpress是哪家公司的建站程序如何自己建网站
  • 如何做电影网站 去哪里找片源百度下载安装2021
  • 什么网站可做浏览器首页深圳优化公司
  • 网站搭建要求模板徐州百度seo排名优化
  • 天空影院手机免费观看在线seo霸屏
  • wordpress修改字体为微软seo指的是
  • 网站推广免费 优帮云杭州百度快照推广
  • 百度推广 url主域名和注册网站不一致网络营销模式有哪些?
  • 网站接入服务器商查询株洲seo快速排名
  • 微信做兼职什么网站好百度竞价搜索
  • 外企网站建设爱站网关键词密度查询
  • 华为做网站吗湖北百度推广电话
  • cname解析对网站影响我想做电商
  • 可以做微课PPT模板 网站网站建设小程序开发
  • 拿p5.js做的网站互联网平台
  • 旅游网站的网页设计互联网搜索引擎有哪些
  • 怎么用wordpress建立自己的网站吗百度竞价在哪里开户
  • 做黄色网站赚钱么厦门seo网站推广
  • 增城企业网站建设网站推广优化业务
  • asp net网站建设百度站长工具添加不了站点
  • to a wordpressseo自学网免费
  • 如何做网站的优化和推广公众号软文推广多少钱一篇
  • 广东东莞自己建站教程百度霸屏推广靠谱吗
  • 购物网站底部设计网店代运营商
  • 手机网站可以做商城吗百度网站域名
  • flash网站规划网站自动秒收录工具
  • 四川今日发布最新新冠疫情牛排seo系统
  • 苏州网站建设哪家好软文网
  • 海口专业网站搭建批发网页做推广