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

东莞网络销售的网站建设团购网站模块

东莞网络销售的网站建设,团购网站模块,微信会员卡系统怎么做,WordPress防刷登录前引:在STL的关联式容器中,set以其严格的元素唯一性和自动排序特性成为处理有序数据的核心工具。其底层基于红黑树(Red-Black Tree)实现,保证了O(log n)的查找、插入与删除复杂度!本文将从底层原理切入&…

前引:在STL的关联式容器中,set以其严格的元素唯一性自动排序特性成为处理有序数据的核心工具。其底层基于红黑树(Red-Black Tree)实现,保证了O(log n)的查找、插入与删除复杂度!本文将从底层原理切入,结合关键操作源码剖析,探讨set在去重排序、高效检索等场景的工程实践。通过对比unordered_set与自定义排序规则,揭示其在内存效率与访问性能的平衡艺术 !

目录

【一】set 与 multiset 的介绍

【二】特点详解

(1)自动排序

(2)唯一元素

(3)高效操作

(4)不支持随机访问

(5)迭代器支持

【三】接口学习

(1)构造

(2)插入

(3)迭代器访问

(4)范围for访问

(5)find 搜索+erase 删除

(6)find 搜索 与 count搜索

(7)lower 与 upper

(8)元素个数

(9)equal_range


【一】set 与 multiset 的介绍

完整解释:

在C++标准模板库(STL)中,set是一种关联容器,用于存储唯一元素(本身是 key),并自动按升序排序。它基于红黑树(一种自平衡二叉搜索树)实现,提供了高效的查找、插入和删除操作。set常用于需要快速访问和唯一性保证的场景,如去重、排序或作为字典键

set 通俗理解:

基于红黑树实现的一种容器,具有自动排序(升序)+不重复的特点

 multiset 通俗理解:

基于红黑树实现的一种容器,具有自动排序(升序)特点,但 multiset 的节点允许键值重复

【二】特点详解

(1)自动排序

自动排序简而言之就是当你存入数据到 set 容器时,它会自动把它插入到合适的位置,从而实现自动排序,感觉就像《搜索二叉树+中序遍历》例如:

插入(1,、9、7、6),set 容器里面存储(1、6、7、9)

(2)唯一元素

唯一性体现在数据的独一无二,例如:

插入(1、2、3、3、3、7、7、6),set 容器里面存储(1、2、3、6、7)

(3)高效操作

查找  插入  删除:我们可以根据《搜索二叉树》理解,每次折半,那么时间复杂度可以保证在O(logn),这些高效性源于红黑树的平衡特性!

(4)不支持随机访问

它的结构不是像数组那样的下标访问,元素的位置由树结构决定

(5)迭代器支持

支持正向和反向两种迭代器(下文有例举!)

【三】接口学习

(1)构造

set 比较常使用的是默认构造:set + 数据类型 + 变量

set<int> V;
(2)插入
V.insert(9);
(3)迭代器访问
set<int>::iterator it = V.begin();
while (it != V.end())
{cout << *it << " ";it++;
}

(4)范围for访问
for (auto e : V)
{cout << e << " ";
}

(5)find 搜索+erase 删除

第一种查找:库里面通用的查找函数,属于暴力查找,时间复杂度为 O(N)

第二种查找:set 容器里面的,根据 set 的结构查找,时间复杂度为 O(logn)

//搜索+删除auto st = find(V.begin(), V.end(), 5);    //第一种
auto st = V.find(8);                      //第二种
if (st != V.end())
{V.erase(10);
}

(6)find 搜索 与 count搜索

find:如果找到指定元素了,会返回它的位置,否则返回end

count:如果找到指定元素返回1,否则返回0

(7)lower 与 upper

lower_bound:返回范围内 >= 指定元素的位置,否则返回end

例如:(1,2,3,4,6,7,8)查找4,返回4的位置;查找5,返回6的位置

upper_bound:返回范围内指定元素的位置,否则返回end

例如:(1,2,3,4,6,7,8)查找4,返回6的位置

(8)元素个数
V.size();

(9)equal_range

返回值:

该函数返回一个 pair

其成员 pair::first 是范围的下限(与 lower_bound 相同)>=

pair::second 是上限(与 upper_bound 相同)>

http://www.dtcms.com/a/599821.html

相关文章:

  • 头条网站怎么做的网站的后台地址
  • 做网站卖资料人力管理系统
  • wordpress建立论坛网站网络营销成功案例ppt免费
  • 网站开发项目立项报告范文网站建设收费标准效果
  • 担路网如何快速做网站新公司网站设计注意事项
  • 企业 网站微信 建设江苏搜索引擎优化
  • 爬虫怎么看网站开发者模式网站设计与制作教程1
  • 怎么建手机网站平台小程序怎么做成链接
  • 株洲做网站的公司山西网站建设怎么样
  • 网站建设工作目标广州番禺营销型网站建设
  • 美味西式餐饮美食网站模板营销的网站建设公司
  • 济南网站建设公司电子商务网站公司加强网站建设
  • 如何设公司产品购物网站网站聊天怎么做
  • 免费外贸建站平台互联网技术的特点
  • 建设一个自己的网站需要多少钱wordpress 通讯录插件
  • 邯郸医疗网站建设有没有做租赁的网站
  • 为什么网站建设比商场要贵dj音乐网站建设
  • 写网站建设的软文无锡 做网站
  • 做网站阿里巴巴好还是百度好网站制作开发教程
  • 上国外的网站很慢seo成都培训
  • 科技网站欣赏网页设计基础
  • 深圳罗湖区住房和建设局网站沈阳发布最新通告
  • 内网网站开发报价站长之家 wordpress
  • 如何管理网站域名wordpress静用字体
  • 网站设计平台 动易wordpress 主题选项
  • 网站内容的排版布局微网站与手机网站的区别
  • 最牛视频网站建设17网站一起做 佛山
  • 一般企业网站3年多少钱海南网上申请营业执照步骤
  • 全椒做网站湘潭学校网站建设 磐石网络专注
  • 发布新闻最快的网站大型 网站的建设 阶段