map的基础用法

Arxml文件可视化:当汽车软件架构遇见交互式设计工具 本文探讨了Arxml文件在汽车电子系统开发中的可视化技术,结合AUTOSAR架构标准,介绍了如何利用现代Web技术构建交互式设计工具。通过三维组件关系图、动态数据流展示和版本对比等功能,显著提升开发效率和架构评审质量,适用于MBD和ASPICE开发流程。 阅读详情

map的基本使用 详情参考https://www.liwenzhou.com/posts/Go/08_map/

//map的基本使用
//map类型的变量默认初始值为nil,需要使用make()函数来分配内存
func main() {
	scorceMap := make(map[string]int, 8)
	scorceMap["张三"] = 90                    //向scoreMap中添加一对键值对
	scorceMap["李四"] = 66                    //同上
	fmt.Println(scorceMap)                  //打印现有map中所有的内容
	fmt.Println(scorceMap["张三"])            //打印键为张三对应的值
	fmt.Printf("type of a:%T\n", scorceMap) //打印scorceMap的类型信息
}

输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
map[张三:90 李四:66]
90
type of a:map[string]int

注释:map是引用类型.与channel ,slice,map 都需要使用make进行初始化,进行内存分配.

//声明map的时候直接初始化赋值

//声明map的时候直接填充map内容
func main() {
	userInfo := map[string]int{ //直接使用:= 声明map并对map进行初始化赋值
		"张三": 99,
		"李四": 98,
		"王五": 97,
	}
	fmt.Println(userInfo) //虽然这里使用的是println进行输出.但是打印出的内容是在一行中的.因为打印的map是一个整体.并没有做遍历操作.
}

输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
map[张三:99 李四:98 王五:97]

//判断key是否在map中

//声明map的时候直接填充map内容
func main() {
	userInfo := map[string]int{ //直接使用:= 声明map并对map进行初始化赋值
		"张三": 99,
		"李四": 98,
		"王五": 97,
	}
	fmt.Println(userInfo) //虽然这里使用的是println进行输出.但是打印出的内容是在一行中的.因为打印的map是一个整体.并没有做遍历操作.
	//判断map中是否有某个键值
	value, ok := userInfo["张三"] //在map中取值会返回一个值内容,和一个bool值.如果成功返回key内容那么bool值就是true.否则就是false
	if ok {
		fmt.Println("张三:", value)
	} else {
		fmt.Println("张三不存在")
	}
}

输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup

Process finished with exit code 0
map[张三:99 李四:98 王五:97]
张三: 99

遍历map

//遍历map
func main() { //遍历键值,
	scoreMap := map[string]int{
		"张三": 99,
		"张思": 95,
		"张武": 98,
	}
	for k, v := range scoreMap {  //使用range遍历整个键值对.
		fmt.Println(k, v)
	}
}

输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
张三 99
张思 95
张武 98

这里遍历的是整个键值对.

只遍历键或者之遍历值

func main() { //遍历键值,
	scoreMap := map[string]int{
		"张三": 99,
		"张思": 95,
		"张武": 98,
	}
	for k := range scoreMap {
		fmt.Println("scorMap的键为: ", k) //这里只遍历map的所有键.
	}
	for _, v := range scoreMap {
		fmt.Println("scorMap的键为: ", v) //这里只遍历map的所有值,将键舍弃
	}
}

输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
scorMap的键为:  张三
scorMap的键为:  张思
scorMap的键为:  张武
scorMap的键为:  99
scorMap的键为:  95
scorMap的键为:  98

delete()方法删除map中的键值对

//使用delete()删除键值对
//delete(map,key) 这里只要指定删除哪个map中的哪个键
func main() {
	scoreMap := map[string]int{
		"张三":  111,
		"李四":  122,
		"F4":  112,
		"大铁锤": 44,
	}
	fmt.Println(scoreMap)  //打印map
	delete(scoreMap, "F4") //这里将scoreMap中的F4键值对删除,
	fmt.Println(scoreMap)  //打印map
}

输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_main_go.exe #gosetup
map[F4:112 大铁锤:44 张三:111 李四:122]
map[大铁锤:44 张三:111 李四:122]

这里看到第二次打印map的时候里面的元素已经将f4:122删除掉了

map的顺序取值

func main() {
	rand.Seed(time.Now().UnixNano()) //初始化随机数种子

	var scoreMap = make(map[string]int, 200)

	for i := 0; i < 10; i++ {
		key := fmt.Sprintf("stu%02d", i) //生成stu开头的字符串
		value := rand.Intn(10)           //生成0~99的随机整数
		scoreMap[key] = value
	}
	//取出map中的所有key存入切片keys
	var keys = make([]string, 0, 200)
	for key := range scoreMap {
		keys = append(keys, key)
	}
	//对切片进行排序
	sort.Strings(keys)
	//将切片中的值取出(map中的键)并循环打印出结果
	for _, i := range keys {
		fmt.Println(i, scoreMap[i])
	}
}


输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
stu00 3
stu01 5
stu02 4
stu03 5
stu04 9
stu05 7
stu06 6
stu07 3
stu08 3
stu09 2

元素为map的切片

//元素为map类型的切片
func main() {

	//先声明一个map类型的切片
	scoreMapSlice := make([]map[string]string, 5)
	//定义一个变量item是map类型

	for i := range scoreMapSlice { //将切片里面的元素遍历出来
		scoreMapSlice[i] = make(map[string]string) //表示将所有的元素都定义成map类型
		//修改item的值
		num := fmt.Sprintf("num%2d", i)
		scoreMapSlice[i][num] = fmt.Sprintf("大侠饶命%d", i) //前部部分的scoreMapSlice[i]表示列表中某一个单独的map.
		// [num], 表示这个map的键,
		//如果要给键赋值的话那就表示是一个完整的键值对关系.这个过程是一个直接赋值的过程.

	}
	fmt.Println(scoreMapSlice) //打印完整的map类型的切片

}

输出结果:
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
[map[num 0:大侠饶命0] map[num 1:大侠饶命1] map[num 2:大侠饶命2] map[num 3:大侠饶
命3] map[num 4:大侠饶命4]]

作业1 这道题现在也不明白为啥结果是133

func main() {
	type Map map[string][]int
	m := make(Map)
	s := []int{1, 2}
	s = append(s, 3)
	fmt.Printf("%+v\n", s)
	m["q1mi"] = s
	s = append(s[:1], s[2:]...)
	fmt.Printf("%+v\n", s)
	fmt.Printf("%+v\n", m["q1mi"])
}

输出结果
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
[1 2 3]
[1 3]
[1 3 3]

为啥最后的结果是133???
//作业2写一个程序,统计一个字符串中每个单词出现的次数例如 how do you do!
func main() {
	s1 := "how do you do !"     //原始字符串
	m := make(map[string]int)   //初始化一个map类型
	S := strings.Split(s1, " ") //将字符串按照空格为分隔符的形式转换成切片
	for _, v := range S {       //循环切片中的内容,并取出切片中的值(map的键)
		m[v] = m[v] + 1 //每次有相同的map都会+1,因为定义的初始化map中没有值,不太明白为啥map的键相加后值会累积.
	}
	for i, v := range m {
		fmt.Println(i, v) //打印map的键值对
	}
}

输出结果
C:\Users\34826\AppData\Local\Temp\___go_build_code_oldboy_com_studygolang_05lesson5_lesson1.exe #gosetup
! 1
how 1
do 2
you 1

 

华为OD机试真题 新系统2026-04-01 Python&JS 实现【空间占用计算】 员工A的磁盘空间经常被耗尽,他需要找到占用空间最大的目录或文件,然后决定如何清理文件释放空间。给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录一级子项(文件或子目录)中占用空间最大的项。 阅读详情

相关推荐

从原理到应用:深入解析双编码器在机器人关节力矩感知中的实现

本文深入解析了双编码器方案在机器人关节力矩感知中的实现原理与应用。该方案通过在电机侧和输出侧分别安装编码器,利用两者位置差异间接高精度计算外力,克服了传统电流环精度不足和扭矩传感器成本高昂的缺点。它为实现协作机器人的丝滑拖动示教、灵敏碰撞检测以及足式机器人的动态平衡与柔顺控制提供了关键技术支撑,是目前高性能机器人力控的主流选择。

t8u9v0w1x的博客 662

map的常用用法详解(新手入门!!!)

目录 前言: 1.map的定义: 2.map容器内元素的访问: 3.map常用函数实例解析: 4.map的常见用途: 前言: map是一种映射,是常用的STL容器。(map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)) 如需使用,需要加一个map头文件。 1.map的定义: map<typename1, typename2>mp; 使用map要确定映射前类型(键key)和映射后的类型(值value)。 注意:如果是字符串到整形的映射,必须使

weixin_60789461的博客 4万+

U8+ 新建账套

一、登录 账套主管:demo 对账套有修改权限,有账套库权限 系统管理员:admin 其他所有权限 二、新建账套 admin登录–>点击系统管理–>账套–>建立 选择了参照已有账套结转期初:就是上一个的期末数据作为这一次新表的期初数据 启用会计期一旦选择更改不了。 ...

茶茶很困i 3693

map类型的介绍

map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型。 说明: 1、KeyType: 表示键的类型。 2、ValueType: 表示键对应的值的类型。分析: map类型的变量默认初始值为nil,需要使用make()函数来分配内存。 三、map基本使用 例: 结果: 声明时填充元素例: 结果: 四、判断某个键是否存在 语法: 例: 结果: 五、遍历map 例: 结果: 分析: 遍历map时的元素顺序与添加键值对的顺序无关,所以每次遍历输出的结果都不一样语法: 说明: 1、map:

技术的搬运工 4362

STM32F4_LCD显示汉字

LCD显示汉字和显示图片、数字、字符的原理是一样的,都是将汉字、图片、数字以及字符转换点阵,进而通过函数扫描点阵在LCD上显示;

light_2025的博客 1万+

AMBA-CHI协议详解(三)

Write Transactions、Atomic transactions、 Stash transactions、 Dataless transactions的等各个事务的事务流。

Crazzy_M的博客 3180

【并发编程】map 基本用法和常见错误以及如何实现线程安全的map类型

博主介绍: – 我是了 凡 微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~ 前言 哈希表介绍 哈希表(Hash Table)这个数据结构,在Go语言基础的时候就已经涉及过了。实现的就是key-value直接的映射关系,主要提供的方法包括Add、Lookup、Delete等。因为这种数据结构是一个基础的数据结构,每个key都会有一个唯一的索引值,通过索引可以很快找到对应的值,所以使用哈希表进行数据的插入和读取都是很快的。Go语言本身就内建了这样一个数据结构,也就是map数据类型。 .

了 凡 1892

LPDDR6 技术标准详解(JESD209-6)

是继 LPDDR5/5X 之后的新一代低功耗 DRAM 标准,专为满足移动终端、AI、边缘计算等高带宽、低功耗场景而设计。该标准通过全新架构、动态功耗控制机制和增强型数据完整性机制,实现性能、能效与可靠性的全面升级。LPDDR6 并非仅是速度升级,更是内存架构设计思路的演进,围绕“低功耗 + 高带宽 + 强安全”的三维目标,构建下一代 SoC 平台关键基础。✅ 高带宽:支持 32B/64B 动态突发✅ 低功耗:动态电压、通道切换✅ 高可靠性:ECC + 自测试 + 安全区。

weixin_43199439的博客 2569

Map常用用法

目录 一、Map简单介绍: 1.1 Key: 1.2 value: 二、常用方法: 2.1 判断: 2.2 取值: 2.3计数: 2.4 增加: 2.5 删除: ​ 三、实例应用 3.1Map的循环 3.1.1 keySet集合迭代 3.1.2 keySet集合foreach循环 3.1.3 entrySet集合迭代 3.1.4 entrSet集合foreach循环...

千千 1252

操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权

先将操作在本地执行,使用procmon进行监控,过滤DLL和 NAME NOT FOUND ,寻找可以替换的DLL文件,注意文件的权限是否可以在目录写入,可以看到在C盘的tools目录的文件中有一个srrstr.dll被调用,但是没有加载,我们生成恶意的DLL文件看看是否可以被劫持。在Windows中许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库文件,即dll文件,放置于系统中,个人理解类似于我们编程中引入的模块。将我们生成的DLL文件改名为我们要劫持的DLL文件名。

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 1873

光学系统仿真软件:Finesse_(6).噪声分析与优化

在Finesse中,噪声源的定义可以通过在光学元件的参数中添加噪声项来实现。以下是一个简单的示例,展示了如何在激光器和反射镜中定义噪声源。# 定义噪声传递函数# 绘制噪声传递函数plot NTF1在这个例子中,定义了一个噪声传递函数NTF1,描述了激光器L1到反射镜M1的噪声传递过程。plot NTF1命令绘制了噪声传递函数的频谱图。# 定义耦合路径# 绘制耦合噪声频谱图plot C1在这个例子中,定义了一个耦合路径C1,描述了激光器L1和反射镜M1之间的噪声耦合关系。plot C1。

kkchenjj的博客 873

[Java]Map集合的基础用法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 #博学谷IT学习技术支持 文章目录 前言 一、Map集合概述 二、哈希值与结构 三、基础功能 四、Map集合获取方法 五、Map集合的两种遍历方法 前言 个人学习笔记,欢迎指出任何错误,提供建议。 我的文章都将随着个人学习深入而定期更新。 以最简单的办法讲明方法和概念 提示:以下是本篇文章正文内容,下面案例可供参考 一、Map集合概述 数据结构是哈希表 存取无序 不可以存储重复.

weixin_46784189的博客 585

基于Simulink的MIMO-OFDM系统仿真建模示例

MIMO概述MIMO技术利用多个天线进行信号发送和接收,通过空间复用来提高数据传输速率,或通过空间分集来增强信号的可靠性。OFDM概述OFDM是一种将高速率数据流分成多个低速数据流并行传输的技术,每个子载波都采用调制方式(如BPSK、QPSK),并通过IFFT/FFT变换实现串并转换。MIMO-OFDM优势结合了MIMO的空间分集增益与OFDM对抗多径效应的能力,适用于宽带无线通信系统。提供了更高的数据速率和更好的频谱效率,是现代无线通信标准(如4G LTE、5G NR等)的核心技术之一。

xiaoheshang_123的博客 327

map/unordered_map基础用法

map是STL里重要容器之一。 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key,value>的键值对,map中不允许有键值相同的元素, 因此map中元素的键值key不能修改,但是可以通过key修改与其对应的value。如果一定要修改与value对应的键值key,可将已存在的key删除掉,然后重新插入。 定义原型: 它作用应用场景可用作①字典 ②统计次数 相关操作 (1)插入操作 方式有...

weixin_36670529的博客 5076

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

c++ map的一些基础函数用法

#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef pair p; bool cmp(p m1,p m2) { return m1.second<m2.second;

PasserbyQk 齐凯 500

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Python基础】探索 Python 中的 map、zip 和 lambda 函数用法

在Python里,mapzip和lambda是三个极其强大的内置函数,它们能够使代码更加简洁和高效。它们分别用于数据转换、数据组合以及创建匿名函数,常被用于数据处理和函数式编程。

climber1121的博客 1221

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C++ map 全面解析:从基础用法到实战技巧

本文全面介绍了C++标准库中的std::map容器,从核心概念、基础用法到实战应用。std::map是基于红黑树实现的有序关联容器,具有键唯一性和自动排序特性,支持O(logN)的查找、插入和删除操作。文章详细讲解了map的初始化、遍历、插入、查找和删除等基本操作,重点分析了operator[]的多功能性及其与at()的区别。此外,还比较了map与multimap的差异,并通过两个经典例题(随机链表复制和前K个高频单词)展示了map的实际应用场景。文章内容详实,涵盖了从基础到进阶的知识点,是掌握std::m

心向往之,行必能至 2496

STL——map/unordered_map基础用法

原地址:https://www.cnblogs.com/tp-16b/p/9156810.html map /multimap map是STL里重要容器之一。 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key,value>的键值对,map中不允许有键值相同的元素, 因此map中元素的键值key...

wang13342322203的博客 455

map映射的基础用法

参考:(5条消息) map 映射_happyaaakkk的博客-优快云博客_map映射 一、什么是map映射? 定义:map容器是一个键值对key-value的映射。map的key和value可以是任意的数据类型(包括int、double、long long、string、struct、vector、queue等等)。 二、map映射的基本操作 1.map的声明 代码如下(示例): map<int,int> mp;//定义了一个从int型到int型的映射 map<int,

asiip的博客 5029

【ES6基础】 Map用法总结

本文整理自阮一峰: Map,更改为字典结构,扩展解释。 含义及基本用法 Map数据结构类似于对象,也是键值对的集合,但是键的范围不限于字符串,各种类型的值(包括对象)都可以当做键。 Map结构提供了“值-值”的对应,是更完善的Hash结构实现。Map可以作为构造函数。 如何向Map添加成员 利用set()方法 添加一个对象时,可以用这种方法 const m = new Map(); // o是一个...

weixin_34249367的博客 433

new Map()的基础用法(ES6)

<template> <el-table-column :formatter=“tableIdFormat”></el-table-column> </template> //this.$store.state.dataOrigin里面先存上数据 computed:{ getData(){ let map=new Map(); this.$store.state.dataOrigin.forEach((val)=&.

yydszxd的博客 1299

Python 基础学习map 用法

map: map(f, iterable, ...) map 函数目的: 根据自定义的函数fff对输入的序列的所有元素做统一的"映射".所以map在这可以理解为映射的意思. 当输入的序列不止一个时,自定义函数fff要把所有序列相同位置的数统一作为输入(有n个序列则fff需要有n个输入参数),但最终map返回长度与最短的一个序列保持一致(在python3中返回迭代器) 例子1: a = [1,2,3...

One Way的博客 399

【python基础】python map的用法

两个 map 对象,然后仍然调用 map(list, …) 来将 map 对象转换为 list,最后再将转换后的两个 list 打包成一个元组,并用 map_results1 和 map_results2 接收。,其效果是将参数列表中的每个元素,依次传入到 function 中并收集每次 function 返回的结果,然后把所有结果打包成一个 map 对象并返回。),可以发现 map_result 中的每个元素应该都是一个 map 对象,所以我们可以把。打包成一个列表(或者元组),即。

weixin_44286126的博客 1513

map函数基础用法

map是关联容器,它实现从键(key)到值(value)得的映射。map效率高的原因是它利用平衡二叉搜索树来存储和访问。 一般的数组也是用映射方法实现的。

水深00安东尼的博客 560

C++ 中 map 和 unordered_map 的基础用法

1. 区别和用法 map 和 unordered_map 都是键值对的容器。map 的底层通过树实现,且会自动为容器内元素按key进行升序排序。unordered_map 的底层通过哈希表实现,并不会自动排序。当创建一个不需要排序的字典时应使用 unordered_map,因为哈希表对元素的查找更快。 结论:需要排序的字典用 map,不需要排序的字典用unordered_map。 2. map 的用法 #include <map> //ma

weixin_45823587的博客 1709

java 基础之Map用法

java 基础之Map用法

jessysong的博客 744
上一篇: 切片相关基础内容
下一篇: 函数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值