map容器
1.map容器类型及map类概述
map的本义是映射,就是可以将一个量映射到另一个量。
比如将一个字符串映射为一个数值,那么这个字符串就是map的键(key),那个值就是map的数据(value)。
因此,可以将map容器理解为一个快速查找数据结构的键。
对一个map元素进行访问的索引称为“键”。一个键可以是字符串、标量实数或整数。
map类的所有对象具有三种属性,只能通过map类的函数进行修改。
属性 | 说明 | 默认值 |
Count | uint64,表示map对象中key/value对的总数 | 0 |
KeyType | 字符串,表示map对象中包括的key的类型 | char |
ValueType | 字符串,表示map对象中包括的数据类型 | any |
2.创建map对象
map是一个map类中的对象,由MATLAB中名为“容器”的一个包来定义,可以通过构造函数来创建,举例如下:
星期一 | 星期二 | 星期三 | 星期四 | 星期五 |
数学 | 英语 | 历史 | 生物 | 地理 |
1 |
>> schedule_map = containers.Map({'Monday','Teusday','Wednesday','Thursday','Friday'},{'Math','English','History','Biology','Geography'}) |
运行结果如下:
1 2 3 4 5 6 7 |
schedule_map = Map (具有属性): Count: 5 KeyType: char ValueType: char |
创建一个空对象:
1 |
>> New_map = containers.Map() |
3.查看/读取map对象
查看map对象:
map对象中,每个条目包含两部分:一个惟一的键及其对应的值。
可通过keys函数查看map对象中包含的所有键;values函数查看所有值。举例如下:
1 2 3 |
>> keys(schedule_map) >> values(schedule_map) |
结果如下:
1 2 3 4 5 6 7 |
ans = 'Friday' 'Monday' 'Teusday' 'Thursday' 'Wednesday' ans = 'Geography' 'Math' 'English' 'Biology' 'History' |
读取map对象
创建好map对象之后,用户便可以访问其数据。
当键名是一个字符串时,需用单引号将其括起来。举例如下:
1 2 3 4 5 |
>> course = schedule_map('Wednesday') course = History |
若访问多个键,则可使用values函数:
1 2 3 4 5 |
>> values(schedule_map,{'Monday','Teusday'}) ans = 'Math' 'English' |
注:在访问多个键时,不能利用“:”进行访问,因为冒号操作数必须为实际标量。
4.编辑map对象
删除keys/values对:
利用remove函数,其调用格式如下:
- >> remove(‘mapName’,’keyName’)
举例:
1 2 3 4 5 |
>> remove(schedule_map,'Monday') >> keys(schedule_map) >> values(schedule_map) |
结果中显示原map对象中少了一项:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ans = Map (具有属性): Count: 4 KeyType: char ValueType: char ans = 'Friday' 'Teusday' 'Thursday' 'Wednesday' ans = 'Geography' 'English' 'Biology' 'History' |
添加keys/values对
当用户向一个map对象中写入新元素的值时,需要提供键名,而且该键的类型必须和map中的其他键一致。该操作的调用格式是:
- >> existingMapObj (newKeyName) = newValue;
举例如下:
1 2 3 4 5 |
>> schedule_map('Saturday') = 'public elective course' >> keys(schedule_map) >> values(schedule_map) |
结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
schedule_map = Map (具有属性): Count: 5 KeyType: char ValueType: char ans = 'Friday' 'Saturday' 'Teusday' 'Thursday' 'Wednesday' ans = 'Geography' 'public elective course' 'English' 'Biology' 'History' |
修改keys
若要在保持键名不变的情况下修改键的名称,则需要先删去键名和对应值,然后再重新添加。
修改values
同“添加keys/values对”
转载请注明:燕骏博客 » MATLAB自学笔记(四):map容器
赞赏作者微信赞赏
支付宝赞赏
