map基础知识

map

1.map 的定义和常用函数

1)map 的定义

  • map 是一种关联容器,用于储存一组键值对<key-value pairs>,其中每个键都是唯一的;

  • map 根据键的大小来自动排序,即 less<Key>,并且一般不会改变此比较函数

  • map 与 set 一样,底层由红黑树实现,故此插入、删除和查找的时间复杂度都为O(logN);

template <class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key, T>>>class map;
    • key 表示 map 中键的类型;

    • T 表示 map 中值的类型;

    • Compare:表示用于比较键的函数,默认为 less<Key>;

    • Allocator 表示函数用于分配器的类型,默认为 allocator ,可以缺省;

2)map 的常用函数

1)insert({a,b})或者insert(make_pair(a,b)) 向 map 中插入{a,b}元素,时间复杂度为 O(logN);

2)eraset(a) 在 map 中删除键值为a的元素,时间复杂度为 O(logN);

3)find(a) 查找 map 中的键值为a的元素,找到后返回键值为a的元素的迭代器如果不存在就返回end迭代器,时间复杂度为 O(logN);

4)lower_bound(a) 返回 map 中第一个不小于指定键值a的元素的迭代器,时间复杂度为 O(logN);

5)lower_bound(a) 返回 map 中第一个大于指定键值a的元素的迭代器,时间复杂度为 O(logN);

6)size(a) 返回 map 中元素的数量(键值为一组),时间复杂度为 O(1);

7)count(a) 判断键值为a的元素是否存在,时间复杂度为 O(logN)

8)empty(a) 检查 map 是否为空,时间复杂度为 O(1);

9)clear(a) 清空集合,时间复杂度为 O(1);

10)begin() end() rbegin() rend() 不再赘述;

2.*multimap 的定义和常用函数

与 set 和 multiset 的差别一样;详情可见set基本知识

3.unordered_map 的定义和常用函数

  • 是无序的;

  • 与 unordered_map 类似,底层是由哈希函数实现的,其元素的插入、删除和查找的平均时间复杂度为O(1),但最坏时间复杂度都为O(n)!;

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

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

相关文章

函数调用栈Function Call Stack与递归

函数调用栈&#xff08;Function Call Stack&#xff09;是计算机内存中用于跟踪函数调用和返回的一种数据结构。在程序执行期间&#xff0c;每当一个函数被调用时&#xff0c;相关的信息&#xff08;例如函数参数、局部变量和返回地址&#xff09;都会被存储在栈内存中。当函数…

(十一)PostgreSQL的wal日志(2)-默认wal日志大小

PostgreSQL的wal日志(2)-默认wal日志大小 PostgreSQL的WAL&#xff08;Write-Ahead Logging&#xff09;日志文件默认大小为16MB是基于对性能和可靠性权衡的结果。这个默认值是在PostgreSQL早期版本中设定的&#xff0c;目的是在维持良好的系统性能和提高数据恢复能力之间找到…

Gitlab: Python项目CI/CD实践

目录 1. 说明 2. 准备工作 2.1 服务器 2.2 开发机hosts文件 2.3 项目 3. 步骤过程 3.1 建仓Fastapi T1 3.2 开发机测试构建与推送 ​编辑 3.3 在工作站添加gitlab-runner 3.4 提交代码&#xff0c;查看Pipelines结果 3.5 观察部署情况 4. 参考 1. 说明 分别以一个…

【2024 SCI一区】 基于DCS-BiLSTM-Attention的多元回归预测(Matlab实现)

【2024 SCI一区】 基于DCS-BiLSTM-Attention的多元回归预测&#xff08;Matlab实现&#xff09; 目录 【2024 SCI一区】 基于DCS-BiLSTM-Attention的多元回归预测&#xff08;Matlab实现&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 差异创意搜索算法&…

C++ 静态成员函数(二)

一、访问静态成员变量 静态成员函数可以通过作用域运算符::来访问类的静态成员变量和静态成员函数 静态成员函数不属于任何特定的对象&#xff0c;而是属于整个类&#xff0c;可以通过类名直接调用&#xff0c;无需创建类的实例。静态成员函数不能访问类的非静态成员变量和非…

设计模式学习笔记 - 开源实战一(下):通过剖析JDK源码学习灵活应用设计模式

概述 上篇文章我们讲解了工厂模式、建造者模式、适配器模式适配器模式在 JDK 中的应用&#xff0c;其中 Calendar 类用到了工厂模式和建造者模式&#xff0c; Collections 类用到了装饰器模式和适配器模式。学习的重点是让你了解&#xff0c;在真实的项目中模式的实现和应用更…

在 Linux 终端中创建目录

目录 ⛳️推荐 前言 在 Linux 中创建一个新目录 创建多个新目录 创建多个嵌套的子目录 测试你的知识 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 前言 在本系列的这一部…

Maven的dependencyManagement与dependencies区别

先说结论&#xff1a;Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。 在maven多模块项目的pom文件中&#xff0c;有的小伙伴会发现最外层的pom文件和里面的pom文件有个地方不一样 如下图 父pom 子pom 一般来说是在maven的最外父工程pom文件里&…

npm内部机制与核心原理

npm 的核心目标&#xff1a; Bring the best of open source to you, your team and your company. npm 最重要的任务是安装和维护开源库。 npm 安装机制与背后思想 npm 的安装机制非常值得探究。Ruby 的 Gem&#xff0c;Python的pip都是全局安装机制&#xff0c;但是npm的安装…

界面组件Telerik UI for WPF 2024 Q1新版亮点 - 全新DateRangePicker组件

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序&#xff0c;同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等&#xff0c;创建的应用程序可靠且结构良好&#xff0c;非常容易维护&#xff0c;其直观的API将无缝地集成Visual Studio…

spring事务处理

spring事务 事务介绍 一个事务要么同时成功&#xff0c;要么同时失败 特性 Atomic原子性 事务是由一个或多个活动组成的一个工作单元。原子性确保事务中的所有操作全部发生或全部不发生 Consistent一致性 一旦事务完成&#xff0c;系统必须确保它所建模的业务处于一致的状态 Is…

Hive进阶Day06

目录 一、MapReduce的计算过程 二、Yarn的资源调度 1、yarn的资源调度策略 三、Hive的语法树 四、数据开发 五、数据仓库 六、数据仓库开发流程 七、数仓分层 八、ETL和ELT 一、MapReduce的计算过程 分布式计算框架 需要编写代码执行&#xff0c;执行时会数据所在服务器…

如何正确查看容器的CPU使用率

进入容器中top&#xff0c;虽然看到的PID是容器的&#xff0c;但是%Cpu的统计信息却是宿主机的。 如图 原理 进程的cpu使用率是如何计算出来的&#xff1f; 每个进程的状态是放在文件里的&#xff0c;在/proc目录下&#xff0c;每个进程有自己pid命名的文件夹&#xff0c; …

.NET 爬虫从入门到入狱

目录 前言 1.&#x1f4a1;使用HttpClient爬取数据 2.&#x1f680;模拟User-Agent 3.&#x1f935;使用HTML解析库 3.&#x1f44c;前端Price显示 4.&#x1f331;运行实例 获取金价Au 5.&#x1f9fe;使用正则表达式解析 6.&#x1f4ab;获取BTC价格 7.✨获取CSDN热点…

4.15报错记录

打开文件时出错a bytes-like object is required,notNoneType 确保E:/data/stdata/st- images-1208-json|ST-WT-1.json是一个有效的标签文件。 今天用X-anylabling更改标签目录时出现这个报错 解决方案&#xff1a;图片文件夹中创建同名的一个文件夹把json文件放进去就可以打…

QML语法基础一

import QtQuick QML类型系统 1.基本类型:int bool real double string url list var enum 2.Quick类型:color font matrix4*4 quaternion vector2d vector3d vector4d date point size rect 等 3.javascripte类型:qml支持标准的javascript类型 4.对象类型:用于QML对象实例化 对…

[Qt网络编程]之UDP通讯的简单编程实现

hello&#xff01;欢迎大家来到我的Qt学习系列之网络编程之UDP通讯的简单编程实现。希望这篇文章能对你有所帮助&#xff01;&#xff01;&#xff01; 本篇文章的相关知识请看我的上篇文章: http://t.csdnimg.cn/UKyeM 目录 UDP通讯 基于主窗口的实现 基于线程的实现 UDP通讯…

【YOLO系列PR、F1绘图】更改v5、v7、v8(附v8训练、验证方式),实现调用val.py或者test.py后生成pr.csv,然后再整合绘制到一张图上(使用matplotlib绘制)

目录 1. 前提 效果图2. 更改步骤2.1 得到PR_curve.csv和F1_curve.csv2.1.1 YOLOv7的更改2.1.1.1 得到PR_curve.csv2.2.1.2 得到F1_curve.csv 2.1.2 YOLOv5的更改&#xff08;v6.1版本&#xff09;2.1.3 YOLOv8的更改&#xff08;附训练、验证方式&#xff09; 2.2 绘制PR曲线 …

【创建型模式】抽象工厂模式

一、抽象工厂模式概述 抽象工厂模式定义&#xff1a;提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。 模式动机&#xff1a; 1.当系统提供的工厂生产的具体产品并不是一个简单的对象&#xff0c;而是多个位于不同产品等级结构、属于不同类型的…

HiveSql中的函数家族(一)

一.内置函数 1-1 日期类型操作 -- 获取当前日期 select current_date(); -- 获取当前日期时间 select current_timestamp(); -- 获取unix时间&#xff08;时间戳&#xff09; 从1970年1月1号0时0分0秒 到现在过去了多少秒 select unix_timestamp();-- unix时间 和日期时间的转…