map与set

news2024/12/21 23:40:37

目录

set的key搜索树模拟

set内置的find与count函数

​编辑

set的lower_bound与upper_bound内置函数、

map的key-value搜索树模拟

通过不同的方式向map中插入键值对。

map的遍历

​编辑

map的operator的 [  ] 用法

关于map与set用法的几个例题

例题1: 随机链表的复制 leetcode 138leetcode138

​编辑例题2: leetcode349两个数组的交集  set去重排序的应用场景

​编辑

例题3: leetcode692 前k个高频单词 top-K问题


set的key搜索树模拟

set的数据结构是一个集合类型,其内部元素保持有序。当在代码中多次插入同一个元素时,该元素会被重复出现,但在set中它是唯一的。此代码片段输出的是数字2, 3, 4和5的顺序排列。

set内置的find与count函数

以下代码是一个测试函数,用于演示set集合中的find函数和count函数的使用。

首先,创建了一个名为set的set集合对象。 接着,通过insert函数向set集合中插入一些整数元素:3、2、4、5。

然后,使用find函数来查找是否存在值为5的元素。如果查找成功(即返回的迭代器不等于end()),则打印“have finded”。 再使用count函数来统计值为5的元素在set集合出现的次数。如果出现次数大于0,则打印“have finded”。

set的lower_bound与upper_bound内置函数、

lower_bound函数返回的是第一个大于或等于给定值的元素迭代器,而upper_bound函数返回的是第一个大于给定值的元素迭代器。erase函数接受两个迭代器作为参数,表示要删除的范围,这两个迭代器通常用于表示一个范围的开始和结束。

map的key-value搜索树模拟

通过不同的方式向map中插入键值对。

  1. 使用pair类型的构造函数创建了一个键值对kv1,其中键为"insert",值为"插入",然后将这个键值对插入到map中。
  2. 使用匿名的pair对象直接插入了一个键值对,其中键为"sort",值为"排序"。
  3. 使用make_pair函数创建了一个键值对,并将其插入到map中,键为"stirng",值为"string"。
  4. 使用花括号语法(C++11引入的初始化列表)创建了一个键值对,并将其插入到map中。

通过这些方式,我们可以将不同的键值对插入到map中。

map的遍历

map的operator的 [  ] 用法

[ ]的operator,map会创建方括号“[ e ]”中key为e的二叉树结点,并返回存在key结点的value值

这段代码主要使用了C++的map数据结构,并且展示了如何使用operator[]进行查找和插入操作。下面是对这段代码的逐行解释:

关于map与set用法的几个例题

例题1: 随机链表的复制 leetcode 138leetcode138

功能:复制一个带有随机指针的链表。这里使用了类和类的成员函数,包括一个节点类和一个解决方案类。

代码中的主要函数是copyRandomList,它接收一个链表的头节点作为输入,并返回复制后的链表的头节点。这个函数主要做了以下几件事:

  1. 创建一个新的节点,并将原链表的节点值复制到新节点中。同时,它也存储了原节点和新节点的映射关系,以便在后面的步骤中查找。
  2. 如果复制的头节点为空,那么就将复制的头节点和尾节点设置为新节点。否则,就将新节点添加到尾节点的后面。
  3. 遍历原链表,对于每个节点,如果它有随机指针,就查找对应的新节点,并将新节点的随机指针指向原节点的随机指针。

这个函数的主要目的是复制链表的结构,同时保留随机指针的功能。对于有随机指针的节点,它在复制链表中也会有一个对应的随机指针。这样就可以实现复制链表并保留原有节点的功能。

其中map来存储原节点和新节点的映射关系,以避免重复创建相同的节点。在代码中使用了node_copyNodeMap变量来存储这个映射关系。

例题2: leetcode349两个数组的交集  set去重排序的应用场景

以下代码是一个解决leetcode 349题目的解法,题目要求找出两个数组的交集。

首先,将数组nums1和nums2转换为set容器,以便去除重复元素并进行排序。然后定义一个空的vector容器用于存储交集结果。

通过循环遍历setNums1容器中的每个元素,判断其是否存在于setNums2容器中。如果存在,则将该值添加到vector容器中。

最后返回vector容器作为结果。

该解法利用了set容器的特性,即自动去重并有序。可以提供相对高效的解决方案。

例题3: leetcode692 前k个高频单词 top-K问题

该代码是解决LeetCode上问题692的解题代码,目标是找出给定字符串列表现频率最高的前k个单词。

首先,定义了一个结构体Greater,用于比较两个键值对(pair)。比较规则为按照键值对的值降序排列,如果值相同则按照键的字典序升序排列。

然后,创建一个map类型的countMap,用于统计每个单词在列表¥¥现的次数。遍历接收到的words列表,使用map的特性将每个单词作为键,累加次数作为值保存起来。

接下来,将countMap中的键值对复制到一个vector类型的kvVec中。这里使用stable_sort函数对kvVec进行排序,排序规则为使用Greater结构体中定义的比较方式。

最后,将排序后的kvVec的前k个单词提取出来,放入vector ret中作为结果返回。

整体思路是通过map来统计单词出现的次数,然后通过对map中的键值对进行排序得到频率最高的前k个单词,并返回这些单词的列表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1139011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

V3Det大规模词汇视觉检测数据集与LaRS海上全景障碍物检测数据集

V3Det与LaRS是ICCV2023上发表的数据集工作,规模都比较大,后续有可能会用到,因此记录下来。 V3Det: Vast Vocabulary Visual Detection Dataset Paper: https://arxiv.org/abs/2304.03752 URL: https://v3det.openxlab.org.cn/ 在现实世界中…

Bootstrap中CSS媒体查询分辨率 @media(min-width)例子

Bootstrap中CSS媒体查询分辨率 media(min-width)例子 css media min-width max-width 解释: min-width 表示最小即大于等于max-width 表示最大即小于等于 media screen and (min-width : 320px) {html {font-size : 10px !important;} } medi…

geoserve 发布 Styles 样式时,设置边框、填充以及填充透明度

文章目录 需求分析需求 设置 geoserve 发布的 Styles 样式中的边框、填充以及填充透明度 分析 具体详细使用可参考这篇文文章:在 GeoServer 上发布 Shapefile 文件作为 WMS 数据 <?xml version="1.0" encoding=

Git Gui使用技巧

资料 https://www.runoob.com/w3cnote/git-gui-window.html 操作过程 创建仓库→添加远程仓库→扫描目录→文件移动→提交→上传 注意填注释 文件忽略 创建文件.gitignore→编写内容 *.log #文件 config.ini #文件 temp/ #目录

App分发的策略和注意事项2

当今的数字化时代中&#xff0c;移动应用程序已经成为了人们生活中不可或缺的一部分。随着智能手机的普及和移动互联网的快速发展&#xff0c;应用程序的分发方式也变得越来越多样化。 App分发是指将移动应用程序通过特定的渠道传递给终端用户的过程。在应用程序开发完成后&am…

MySQL 多表查询 事务 索引

目录 多表查询简介内连接查询 join on外连接查询 left join、right join子连接查询标量子查询列子查询 (in、not in)行子查询表子查询 多表查询案例 事务事务介绍操作 start transaction、commit、rollback事务四大特性(面试题) 索引索引介绍索引原理索引语法 index 上次学习了…

一款适用于勒索病毒应急演练加解密工具

decryption-encryption 介绍 #encryption.exe为加密脚本 #decryption.exe为解密脚本 1、运行加密脚本&#xff0c;点击运行程序输入密码&#xff1a;TaSt12.2 输入需要加密的文件路径或文件夹路径&#xff0c;确定后即可对路径下面的所有格式文件进行加密&#xff1b; 2、…

安卓核心板_天玑700、天玑720、天玑900_5G模块规格参数

5G安卓核心板是采用新一代蜂窝移动通信技术的重要设备。它支持万物互联、生活云端化和智能交互的特性。5G技术使得各类智能硬件始终处于联网状态&#xff0c;而物联网则成为5G发展的主要动力。物联网通过传感器、无线网络和射频识别等技术&#xff0c;实现了物体之间的互联。而…

淘宝API接口获取商品信息,订单管理,库存管理,数据分析

在淘宝开放平台中&#xff0c;每个API接口都有相应的文档说明和授权机制&#xff0c;以确保数据的安全性和可靠性。开发者可以根据自己的需求选择相应的API接口&#xff0c;并根据文档说明进行调用和使用。 淘宝开放平台API接口是一套REST方式的开放应用程序编程接口&…

Java注解及自定义注解

注解/元数据&#xff08;Annotation&#xff09;&#xff0c;是对代码级别的说明&#xff1b;在JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0c;用来对这些元素进行说明、注…

三、虚拟机的迁移和删除

虚拟机的本质就是文件(放在文件夹的)。因此虚拟机的迁移很方便&#xff0c;可以把安装好的虚拟系统这个文件夹整体拷贝或者剪切到另外的位置使用。删除也很简单&#xff0c;使用vmware进行移除&#xff0c;再点菜单->从磁盘删除即可&#xff0c;或者手动删除虚拟系统对应的文…

【C++入门系列】——类和对象中篇

​作者主页 &#x1f4da;lovewold少个r博客主页 ⚠️本文重点&#xff1a;C构造函数、构析函数、运算符重载等详解 &#x1f604;前篇文章链接&#xff1a;【类和对象上】http://t.csdnimg.cn/bTQ0Y 目录 前言 类的默认成员函数 构造函数 默认构造 全缺省和无参默认构造 …

vue3+vite引入图片不能再用require,要使用new Url(完整方法步骤)

由于vite里面没有require(), 所以需要封装个工具 export const getAssetURL (image) > {// 参数一: 相对路径// 参数二: 当前路径的URLreturn new URL(../assets/img/${image}, import.meta.url).href }

【Proteus仿真】【Arduino单片机】直流电机和步进电机

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用蜂鸣器、按键、直流电机、步进电机、ULN2003、L293D等。 主要功能&#xff1a; 系统运行后&#xff0c;K3键启动运行&#xff0c;K1和K2键控制…

飞驰云联:让企业文件同步变得更简单

在如今这个高度信息化的时代&#xff0c;企业的文件同步需求日益增长&#xff0c;如何高效、安全地实现文件同步已成为企业亟待解决的问题。飞驰云联的文件同步系统作为一款全新的解决方案&#xff0c;能够满足各种企业对于文件同步的需求&#xff0c;提高工作效率&#xff0c;…

JXLS2同一个sheet多个表格循环覆盖下面表格数据问题

excel 模版&#xff1a; 输出结果 java 代码片段&#xff1a; private static void test01(String name) throws IOException {try (InputStream in new FileInputStream(new File(String.format(gen, name)));OutputStream out new FileOutputStream(new File(String.for…

UnoCSS快速入门

UnoCSS快速入门 UnoCSS一、UnoCSS简介二、UnoCSS解决问题三、UnoCSS实践四、好文推荐 UnoCSS 一、UnoCSS简介 UnoCSS 是一个即时、按需的原子级 CSS 引擎。它专注于提供轻量化、高性能的 CSS 解决方案。“Instant On-demand” 表示 UnoCSS 的加载和渲染速度非常快&#xff0c;…

V8 引擎中的垃圾收集器

V8 引擎中的垃圾收集器 垃圾收集是跟踪活动对象的过程&#xff0c;同时销毁堆内存中未引用的对象&#xff0c;为将来创建的新对象腾出空间。本文将讨论V8 引擎的垃圾收集器&#xff0c;V8 引擎是由 Google 用 C 编写开发的开源、高性能 JavaScript 和 WebAssembly 引擎。 V8 引…

three.js第一课

官网 1.创建场景 2.创建几何体 3.创建材质 4.创建网格模型 5.将几何体、材质加入网格模型&#xff0c;设置网格模型的位置&#xff0c;将网格模型加入场景中 6.创建相机&#xff0c;构造函数中设置角度、最后面视椎体的长宽比&#xff0c;相机离视椎体近端面的距离、视椎体的远…

算法训练营第二天 | 977.有序数组的平方、209.长度最小的子数组、 59.螺旋矩阵II

问题&#xff08; 一 &#xff09; 问题描述&#xff1a; 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序 题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱…