浅谈map和unordered_map的应用场景

news2024/12/25 12:48:16

map和unordered_map的适用场景

底层结构介绍

  • map底层是红黑树结构
  • unordered_map底层是哈希结构;
    在这里插入图片描述

Hash适用场景(unordered_map)

内存存角度来说hash因为底层维护了哈希表的存在,内存消耗远大于红黑树,但是因为哈希表增删查改时的直接映射,使其增删查效率来说可以做到平均O(1)常数级别时间复杂度(红黑树需要依次进行关键码比较,时间是logN的复杂度还要加上平衡节点旋转的时间),那么对数据修改较多且不考虑内存问题的场景可以优先考虑hash;

RB-Tree适用场景(map)

但是红黑树是基于搜索树设计的,具有天然的有序性hash因为存在哈希冲突所以不能保证存储的数据有序,那么对数据存储存在有序性需求的优先使用红黑树;(比如红黑树中,一个中序遍历,就能把储存的数据从小到大把数据按序展现出来)

总结

map红黑树,频繁的增删查改效率可能会不如hash的unordered_map,但是它有序在迭代操作一段范围的存储元素的时候效率高
unordered_map哈希结构,频繁的增删查改效率高于map红黑树,但是它存储的数据无有序性面对迭代操作一段范围的存储元素效率较低

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

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

相关文章

OpenFeign服务接口调用

✨ OpenFeign服务接口调用OpenFeign & FeignFeign基本介绍OpenFeign基本介绍二者对比OpenFeign的使用新建Module:cloud-consumer-feign-order80pom依赖application.yml全局配置文件主启动类Service1. 业务逻辑接口FeignClient配置调用provider服务2. 新建Paymen…

第三十九讲:神州无线AC基础管理配置

瘦AP零配置上线,对AP的管理和配置都在AC上进行。AC的基础管理包括AC的无线地址指定及无线功能开启、AP的注册、AP用户数管理、自动信道调整等。 一、配置AC无线IP地址 设置静态的无线IP地址查看AC选取的无线IP地址3.开启无线功能 二、AP注册 1.二层模式…

【网络结构设计】11、E-LAN | 通过梯度传输路径来设计网络结构

文章目录一、背景二、方法2.1 网络设计策略2.2 Partial Residual Networks2.3 Cross Stage Partial Networks2.4 Efficient Layer Aggregation Network三、效果论文:Designing Network Design Strategies Through Gradient Path Analysis 代码:暂无 出…

微服务应用视角解读如何选择 K8s 的弹性策略

头:潘俊峰 前言 微服务架构的出现,拆分了庞大的单体应用,让业务之间的开发与协作变得更加灵活。当面临业务流量增加的场景时,往往需要对一些应用组件进行扩容。K8s 在应用层面提供了 HPA,围绕 HPA 开源社区延伸出了 …

SAP-FI模块 处理自动生成会计凭证增强

FICO-模块一. 相关问题概览1. 固定资产业务过渡科目摘要增强功能-F-022. 固定资产业务过渡科目摘要增强功能-MIGO3. 主营业务收入等科目自动反记账功能二. 问题图片描述1. 固定资产业务过渡科目摘要增强功能-F-022. 固定资产业务过渡科目摘要增强功能-MIGO3. 主营业务收入等科目…

JavaScript 作用域-作用域概述,变量作用域,作用域链

JavaScript 作用域-作用域概述,变量作用域,作用域链 目录JavaScript 作用域-作用域概述,变量作用域,作用域链1. 作用域1.1 作用域概述1.2 全局作用域1.3 局部作用域 (函数作用域)1.4 JS 没有块级作用域2. 变量的作用域2.1 变量作用…

校验和之概念、计算原理、检验原理、实例计算、代码编程,力荐力荐力荐

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。不用担心你关注我而我却不关注你,因为我是个诚信互关的人!&…

如何用LightningChart创建Android图表数据可视化应用程序?(下)

LightningChart JS 是一款高性能的 JavaScript 图表工具,专注于性能密集型、实时可视化图表解决方案。 LightningChart .JS | 下载试用(qun:740060302)https://www.evget.com/product/4189/download 在上一篇,我们介…

CDN是什么?用了CDN就一定比不用更快吗?

对于开发同学来说,CDN这个词,既熟悉又陌生。 平时搞开发的时候很少需要碰这个,但却总能听到别人提起。 我们都听说过它能加速,也大概知道个原因,但是往深了问。 用了CDN就一定比不用更快吗? 就感觉有些…

Node.js操作Dom ,轻松hold住简单爬虫

前言 前段时间,我发现一个开源题库,题目非常有意思。我想把它整成一个JSON文件做为数据储备,方便整活。 一共有一百五十多道题目,手动CV我肯定是不想干的。于是写了个脚本,在写脚本的过程中,我发现一个能…

Opencv(C++)笔记--利用分水岭算法实现图像分割

1--分水岭算法的原理详细原理讲解可参考:博客1和视频1;原理简述:分水岭算法的基本思想是把图像视为拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而两个集…

csrf漏洞原理及防御

攻击原理 从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤 1.登录受信任网站A,并在本地生成Cookie 2.在不登出A的情况下,访问危险网站B 防御原理 csrf能防御的本质是,黑客虽然携带了合法的cookie&a…

振弦采集模块的辅助功能寄存器

振弦采集模块辅助功能寄存器 1.频率值模拟量输出 VMXXX(仅 VM501、 VM511) 模块支持将当前实时频率值以模拟量形式从管脚输出,模拟量有电流和电压两种输出形式。为了使用此功能,需要将辅助功能寄存器 AUX.[0]设置为 1&#xff0…

<Linux开发> ubuntu开发工具-EasyConnect使用记录

<Linux开发> ubuntu开发工具-EasyConnect使用记录 1、安装EasyConnect 打开EasyConnect官网EasyConnect 根据当前电脑系统选择对应版本下载 作者这里是ubuntu 22.04版本 右击,选择 “软件安装” 即可安装完成;windows版本类似…

数据可视化:揭开“智慧校园”新篇章,助力新时代教育信息化

随着移动互联网、物联网等新一代信息技术的快速发展,建设智慧校园已经具备了成熟的技术条件。自从教育部启动教育信息化2.0计划后,建设智慧校园已成为我国教育信息化发展目标,无论是国家教育事业发展的十三五规划,还是十四五规划&…

Hadoop高手之路7-Hadoop的新特性

文章目录Hadoop高手之路7-Hadoop的新特性一、Hadoop2.0以上新特性二、Yarn资源管理框架1. yarn体系结构2. yarn的工作流程三、HDFS的高可用HA1. HDFS的高可用(HA)架构2. 搭建Hadoop高可用HA集群1) 规划集群节点2) 环境准备3) 配置HA集群(1) 修改core-sit…

【ROS】—— ROS通信机制——实践与练习(六)

文章目录前言1. 话题发布1.1 C方式实现1.2 python实现2. 话题订阅2.1 C实现2.2 python实现3. 服务调用3.1 C3.2 python4. 参数设置4.1 C4.2 python4.3 运行4.4 其他方式4.4.1 修改小乌龟节点的背景色(命令行实现)4.4.2 启动节点时,直接设置参数4.4.3 通过launch文件…

Java测试框架——JUnit详解(45)

文章目录前言何为JUnit?官方资料JUnit4常用注解和断言代码测试搭建一个JUnit测试环境生命周期忽略测试断言测试异常测试测试时间套件测试JUnit5JUnit5对比JUnit4的好处导包的改变注解的改变扩展JUnit新功能:参考文章JUnit是Java编程语言的单元测试框架&a…

list的介绍及模拟实现

🌈感谢阅读East-sunrise学习分享——list的介绍及模拟实现 博主水平有限,如有差错,欢迎斧正🙏感谢有你 码字不易,若有收获,期待你的点赞关注💙我们一起进步 今天想分享介绍一下STL的容器之一lis…

openharmony GPIO 驱动开发

openharmony GPIO 驱动开发GPIO 基础知识GPIO 基础知识——概念GPIO 基础知识——IO 复用GPIO 基础知识——GPIO 分组和编号GPIO 基础知识——用户态测试HDF 框架下 GPIO 驱动HDF 框架下的 GPIO 驱动——案例描述(以 HI3516DV300 平台为例,提供代码)HDF 框架下的 GP…