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

微信公众号设计网站杭州营销策划公司排名

微信公众号设计网站,杭州营销策划公司排名,攀枝花网站怎么做seo,做空间的网站【本节要点】 1.关联式容器2.键值对3.map介绍与使用4.set介绍与使用5.multimap与multisedd的介绍与使用 一、关联式容器:数据管理的核心利器 关联式容器是STL中用于高效存储和检索键值对(key-value pair)的数据结构,其底层基于红黑…

 

【本节要点】

  • 1.关联式容器
  • 2.键值对
  • 3.map介绍与使用
  • 4.set介绍与使用
  • 5.multimap与multisedd的介绍与使用

一、关联式容器:数据管理的核心利器

关联式容器是STL中用于高效存储和检索键值对(key-value pair)的数据结构,其底层基于红黑树(Red-Black Tree)实现,具备以下特性:

  • 有序性:元素按**键(key)**自动排序(默认升序)。
  • 对数时间复杂度:插入、删除、查找操作均为 O(logN)
  • 键的唯一性(仅Map和Set):每个键唯一存在,Multimap和Multiset允许重复键。

应用场景

  • 数据库索引(如MySQL的B+树索引)
  • 配置参数映射(如INI文件解析)
  • 单词频次统计
  • 唯一元素集合管理

二、键值对(Key-Value Pair)

概念键值对是关联式容器的核心单元,通过键(Key)快速定位值(Value),适用于“一对一”或“一对多”映射场景。

SGI-STL中关于键值对的定义:

template <class T1, class T2>
struct pair
{typedef T1 first_type;typedef T2 second_type;T1 first;T2 second;pair(): first(T1()), second(T2()){}pair(const T1& a, const T2& b): first(a), second(b){}
};

三、Map:高效键值映射

3.1 核心特性

  • 唯一键:每个键只能对应一个值。
  • 自动排序:元素按键升序存储(可自定义比较函数)。

 3.2 map的构造

3.3  map的迭代器

3.4  map的容量与元素访问

 3.5. map中元素的修改

3.6 map小结

  • 1. map中的的元素是键值对
  • 2. map中的key是唯一的,并且不能修改
  • 3. 默认按照小于的方式对key进行比较
  • 4. map中的元素如果用迭代器去遍历,可以得到一个有序的序列
  • 5. map的底层为平衡搜索树(红黑树),查找效率比较高$O(log_2 N)$
  • 6. 支持[]操作符,operator[]中实际进行插入查找。

四、Set:唯一元素集合

4.1 核心特性

  • 元素即键:存储不重复的元素,仅支持按值查找。
  • 自动去重:插入重复元素无效。

4.2 set的构造

 4.3 set的迭代器

4.4 set的容量

4.5 set修改操作

4.6 应用场景

  • 用户ID去重
  • 集合运算(如set_intersection、set_union)

五、Multimap与Multiset:支持重复键的扩展容器

容器

键是否唯一

值是否唯一

适用场景

Multimap

邮件地址分组、学生课程映射

Multiset

单词频次统计、学生成绩排名

容器

插入/删除

查找

键是否唯一

是否允许修改键

适用场景

Map

O(logN)

O(logN)

需要键值映射的场景

Set

O(logN)

O(logN)

唯一元素集合管理

Multimap

O(logN)

O(logN)

一对多映射(如用户-角色)

Multiset

O(logN)

O(logN)

允许重复的统计场景

选型建议

  • 若需键值映射键唯一,优先选择Map。
  • 若仅需存储唯一元素,使用Set。
  • 若存在一对多关系,选用Multimap(如用户-邮件地址)。

六、总结

Map和Set作为基于红黑树的关联式容器,提供了平衡的时间复杂度和有序性保障,适用于需要高效查找和唯一性管理的场景。开发者需根据实际需求权衡有序性、唯一性及性能因素,灵活选择容器类型(Map vs unordered_map、Set vs Multiset),并合理使用API以避免潜在陷阱(如下标操作副作用)。深入理解其底层原理,有助于在复杂系统中设计高效的数据结构。


以上就是关于树型结 构的关联式容器主总结,如果有发现问题的小伙伴,请在评论区说出来哦。后面还会持续更新C++相关知识,感兴趣请持续关注我哦!! 

 

http://www.yayakq.cn/news/860228/

相关文章:

  • 长春公司网站推广宁波市建设厅网站首页
  • 国内最大的网站制作公司步骤图
  • 小说网站怎么做词免费发布信息不收费的网站
  • 程序员做网站类网站如何做一个虚拟网站
  • 郑州哪个网站建设最好开发一个简单的系统
  • 网站上的图片一般多大萝岗微网站建设
  • 做网站的服务器用什么 系统好邯郸哪里制作网站
  • 网站服务器的功能wordpress用户中心制作
  • 注册公司登陆哪个网站wordpress缩略图幻灯展现
  • 怎样建立个人网站吉林省干部网络培训
  • 学习网站建设网站平台页面设计
  • 网站设计色板卡片风格网站
  • 阿里云做淘宝客网站咨询网站模板
  • 宝安网站建设深圳信科建立网站邮箱
  • 深圳专业网站建设公司哪家好微信搜一搜seo
  • 一个网站两个域名wordpress哪种主页更利于seo
  • 外国人的做视频网站吗绵阳新农网的网站是哪个公司做的
  • 微信公众号做电影网站设计制作合同交印花税吗
  • 做网站开发要学多久北京宣传片制作
  • 天津网站建设设计费用怎么做全网小说网站
  • 推广网站刷排名软件技术大专出来都去干嘛了
  • 新浪博客网站wordpress表情插件
  • 门户网站 模板之家网站推广成本
  • 想做找人做网站实训课做一个网站怎么做
  • 网站301设置网站建设用户画像例子
  • 做科技申报看什么网站做网站美工未来规划
  • sz住房和城乡建设部网站移动端cpu天梯图2021
  • 网站建设注意问题汕头网站建设模块
  • 用源码做网站步骤成都兴光华城市建设公司网站
  • 成都家具网站建设免费网站app下载汅api