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

烟台 网站建设运营推广seo招聘

烟台 网站建设,运营推广seo招聘,建设公司设计公司网站,企业管理网站模板目录 00.引言 set 和 map 的区别 键值对的概念 01.map容器 主要特性 常用操作 主要用途 02.multimap容器 特性 常用操作 用途 00.引言 set 和 map 的区别 set 和 map 都是C标准模板库#xff08;STL#xff09;中的容器#xff0c;它们的区别如下#xff1a;…目录 00.引言 set 和 map 的区别 键值对的概念 01.map容器 主要特性 常用操作 主要用途 02.multimap容器  特性 常用操作 用途 00.引言 set 和 map 的区别 set 和 map 都是C标准模板库STL中的容器它们的区别如下 set 是一个集合容器存储的是唯一的元素元素本身就是它的值且元素按照某种顺序进行存储。set 不允许存储重复元素常用于去重场景。 map 是一种键值对容器存储的是成对的数据key-value pairs其中键key是唯一的值value可以重复。map 主要用于通过键快速访问对应的值。 键值对的概念 键值对Key-Value Pair是指一种数据结构其中每个数据项都由两个部分组成键key和值value。键是唯一的通过键可以快速找到对应的值。键值对的应用广泛特别是在映射、查找、统计和数据关联等场景中。 键值对的特性 键是唯一的在键值对中每个键都是唯一的不能有重复的键。 值可以重复虽然键是唯一的但对应的值可以重复即多个键可以映射到相同的值。 例如在 map 容器中 mapstring, int myMap; myMap[apple] 10; // apple 是键10 是值 myMap[banana] 20; myMap[apple] 20; // 值可以被修改也可以重复01.map容器 map 是一种存储键值对的关联容器底层通过红黑树实现元素按照键进行排序其提供了高效的插入、删除和查找操作。 主要特性 键值对存储每个元素由一个键和一个值组成键通过某种排序规则存储且键是唯一的。 自动排序map 中的元素默认按照键的升序排序。可以使用自定义比较函数改变排序方式。 查找效率map 使用红黑树平衡二叉搜索树作为底层结构查找、插入和删除操作的时间复杂度为 O(log n)。 常用操作 1.插入元素通过下标运算符 [] 或 insert 方法插入键值对 mapstring, int myMap; myMap[apple] 10; // 插入键为 apple值为 10 的键值对 myMap.insert(make_pair(banana, 20)); // 使用 insert 插入键值对要明白下标运算符 [] 是如何完成插入操作的就要了解其底层逻辑下图是官方的说明 具体的说如果 myMap[ k ] 此时元素k的键已存在就会返回其对应的值的引用既可以查看也可以修改如果元素k的键不存在则会插入一个元素k的新键也会返回对应值的引用默认为0 2.查找元素使用 find 方法查找键对应的值返回指向键值对的迭代器如果找不到对应的键那么会返回一个指向 map 末尾的迭代器 map.end() auto it myMap.find(apple); if (it ! myMap.end()) {cout it-first : it-second endl; }3.删除元素使用 erase 方法删除指定键的元素 myMap.erase(apple);4.遍历元素可以通过迭代器遍历 map 中的所有键值对 for (const auto pair : myMap) {std::cout pair.first : pair.second std::endl; }主要用途 1.关联数组将一个键映射到一个值常用于模拟字典或关联数组。 2.统计频率可以用来统计元素出现的次数如统计单词的出现频率。 3.数据映射适合用于需要快速查找键值对应关系的场景比如用户 ID 与姓名的映射。 02.multimap容器  在 C 标准模板库STL中map 和 multimap 存储的是键值对key-value pairs但它们之间有显著的区别 键的唯一性 map键是唯一的每个键只能对应一个值。如果插入一个已经存在的键新值会替换旧值 multimap允许键重复即同一个键可以对应多个值。它适用于需要存储相同键的多个值的场景。 特性 multimap 适合用于存储一对多关系的数据。 键可重复multimap 中的键不必唯一同一个键可以对应多个值。 自动排序multimap 和 map 一样键默认是按升序自动排序的。 查找效率和 map 一样multimap 的查找、插入、删除操作的时间复杂度都是 O(log n)。 常用操作 1.插入操作使用 insert 方法插入键值对支持同一个键插入多个不同的值。 multimapstring, int myMultimap; myMultimap.insert(make_pair(apple, 10)); myMultimap.insert(make_pair(apple, 20)); // 允许相同键插入注意multimap 不能 使用 [] 运算符进行插入或访问。 这是因为 multimap 允许键重复而 [] 运算符需要确保键是唯一的。[] 在 map 中的行为是根据键查找对应的值如果键不存在就插入一个新的键值对并返回引用这种行为与 multimap 的多键特点冲突。 2.查找元素 a. 使用 find 查找第一个匹配的键。 b. 使用 equal_range 方法查找某个键对应的所有值返回一个范围pair of iterators。 auto range myMultimap.equal_range(apple); for (auto it range.first; it ! range.second; it) {cout it-first : it-second endl; }3.删除元素使用 erase 方法删除某个键的所有值或单个键值对 删除所有键值对: myMultimap.erase(apple); // 删除所有 apple 的键值对删除单个键值对通过迭代器遍历删除 auto it myMultimap.find(apple);for (; it ! myMultimap.end(); it) {if (it-second 20) {myMultimap.erase(it); // 通过迭代器删除该键值对break;}} 或者通过范围迭代删除特定键值对 // 获取 apple 键的范围auto range myMultimap.equal_range(apple);// 在范围内查找并删除值为 20 的键值对for (auto it range.first; it ! range.second; it) {if (it-second 20) {myMultimap.erase(it); // 通过迭代器删除break;}}4.遍历元素可以像遍历 map 一样遍历 multimap 中的所有键值对。 for (const auto pair : myMultimap) {std::cout pair.first : pair.second std::endl; }用途 1.一对多映射multimap 适合用于一对多的映射关系比如在存储课程和学生名单时一个课程可以有多个学生。 2.多重计数当需要统计多个相同键对应不同值的情况时multimap 是一种便捷的工具。 以上就是map和multimap的相关知识总结欢迎在评论区留言觉得这篇博客对你有帮助的可以点赞收藏关注支持一波~
http://www.w-s-a.com/news/193053/

相关文章:

  • 江苏城乡与住房建设厅网站wordpress 添加导航
  • 免费单页网站在线制作网站制作与网站建设pdf
  • 网站开发使用云数据库技术教程大连模板开发建站
  • 佘山网站建设创造网站需要多少钱
  • 南海佛山网站建设网站维护需要什么技能
  • 阿里云服务器开源做几个网站想找公司做网站
  • 一般做网站是用什么语言开发的域名查询 查询网
  • 地方门户网站源码下载揭阳专业网站建设
  • 网站做优化好还是推广好wordpress百家号模版
  • 淘宝网网站建设的的意见校园微网站建设
  • 小说网站建设之前需求分析免费下载京东购物
  • 园林景观设计案例网站wordpress 文章内容页
  • 网站什么做才会更吸引客户楚雄网站开发rewlkj
  • 电商网站构建预算方案视频制作网站怎么做
  • 包装设计灵感网站ps软件下载电脑版多少钱
  • 手机网站图片做多大原网站开发新功能
  • 网站设计培训成都陕西网站建设公司哪有
  • expedia电子商务网站建设辽宁网站设计
  • 深圳网站建设网站运营绥芬河市建设局网站
  • 家政服务网站做推广有效果吗做图软件ps下载网站有哪些
  • 北京市建设教育协会网站flash网站制作单选框和复选框ui组件
  • 国外有没有做问卷调查的网站网站网页怎么做
  • 简单个人网站模板下载网站建设整体情况介绍
  • 网站建设做到哪些内容荆门网站建设电话咨询
  • 玉树网站建设公司双11主机 wordpress 2015
  • dw做网站背景图片设置汕头seo管理
  • 个人又什么办法做企业网站唐山哪里建轻轨和地铁
  • 手机网站404页面室内设计公司排名前100
  • 做民宿需要和多家网站合作吗创建软件的步骤
  • 网站导航栏设计要求辽宁省住房和城乡建设厅