|  | 
 
| 
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  d" [$ f, r0 z0 _* L9 T1. map容器类型以及map类概述2 u* [4 l/ y4 s2 s8 s
 
 ! k' x3 E. u1 K# ?' V4 D9 f4 Omap是将一个量映射到另一个量上,此是前面的量就是map的键(key),后面的量就是map的数据(value)。map的键和对应的数据都储存在map中。一个map条目包括唯一的键和对应的数据。map容器可以理解为一种快速查找数据结构的键。
 6 x" C7 u3 [3 ]3 `
 ) @5 F$ O: f+ V4 P可以当作map的键的数据类型:/ J6 b4 [/ }( L7 @
 
 & e. o+ Z8 X% t# |# I
 1 X N字符串单精度或双精度实数标量有符号或无符号标量$ X! _! t; n7 q" r5 k
 - q; m) y5 C6 c- A9 f8 y3 H% C# z. C* r: ^
 map类的三个属性:
 U9 o/ ]5 S; d3 N) W
 " [( E- P& b, \8 y" ^  H% D" ^7 u
 6 r% M# A1 u& y1 c& |4 b4 A+ || 属性 | 说明 | 默认值 |  | Count | 无符号64位整数,表示map对象中存储的key/value对的总数 | 0 |  | КеyТype | 字符串,表示map对象中包括的key的类型 | char |  | ValueType | 字符串,表示map对象中包括的数据类型 | any | 
 9 k- b  |( l/ q0 b2 t
 9 o# e: {& J  d$ M7 T% Z
 map属性的查看方法:
 ' D7 |5 X5 ^9 y. L( c
 ; t9 ^/ n6 p& r* o0 nmap名+小数点“.”+map的属性名) Q4 w+ S1 p0 |/ w+ ?6 r
 5 y: W' {" Z! V1 e, [- ?) k5 O
 例如:
 2 r5 \: r% W! Q" ^: h1 |2 @6 |' w3 X1 X. j: y$ p& ]
 mapW.ValueType
 3 X2 U7 i/ |3 H; A) e0 A+ _4 ]
 + e8 U$ l- i. v3 L5 W2. 创建map对象
 1 O# i7 P  S+ E  A6 N
 & D+ \# U  E& a* u- j创建方法:
 " O+ d: F# h5 ]% j
 ) z6 |1 o' f) U; ^9 RmapObj=containers.Map({& K, s, k. I% R) Z8 \) j  I* Y
 key1,key2,...},{* O* u  ]- H0 a" V8 r/ Q
 val1,val2,...})
 B. N' X3 }/ h) x- N5 c9 w3 Y%        若键和值为字符串时
 0 G( ]9 {. b  r1 r+ `# G9 T0 l+ Z$ bmapObj=containers.Map({
 * K! K1 X% q7 P! I5 t6 C1 A     'key1','key2',...},{
 ' f. e6 ?6 ]! s, G) l2 U* K; C     'val1','val2',...})9 z5 l4 }3 F" r& }( W" X7 F
 9 H& Y& ^8 M& c' w# E
 
 - @6 M8 R7 u' }* K$ F9 _' e% Z" Q样例:
 % _3 V& G0 r  V$ X. j7 w' m3 D  K
 * h  v; U; p) j# e' Q8 W>> A=containers.Map({
 5 M5 y* o# |5 o( o  d, f1 c6 J     'A','B','C'},{' W1 H4 i# E. v3 [9 I
 95,85,75})1 i3 _/ W* n. ?, a/ ?7 _- }
 ! W* Z# z7 B1 T: u
 A =
 # v, n* k: f9 K/ c8 O- s# X7 y8 C0 Z7 X* a6 P$ W0 r2 B
 Map - 属性:
 / M+ }" E9 f8 a9 R0 k5 s* F
 / C4 F, _' R- h' `2 |' r        Count: 3# q: {% f+ _# j0 ~: c, N$ j$ l  u
 KeyType: char
 4 a: R; @' o2 q. C: u7 U) m( N# U    ValueType: double& e$ f! u8 O5 ^, u6 }  s
 9 Q; \. s& g9 E& o
 >>
 3 u3 Z- Q' b' w4 p- @) t# v$ w# ]/ v4 M* Z
 
 . S- \4 M5 Z$ X4 |9 s( g* ]其他方法:先创建一个空的map对象,然后使用keys和values方法对其内容及进行补充。
 7 `$ j& K" ~; N* U0 U* L4 `) b% M& ^# Y9 ?2 T& z
 newmap=containers.Map()                                                                                                %        创建一个空的map对象, V; I) o& {! Z2 _) x/ E* M* z* W
 
 ( \- K$ g9 Z: n7 b- V! v* [2 O# s) a4 T% X8 z1 ~( R0 X
 
 z+ x7 \- i) t0 h7 O* d+ g& C: k' W& D8 i; U, G$ c
 3. 查看/读取map对象
 5 V% _" {2 O4 k; n  N" I; q! \- N
 
 * e, t) j3 w1 A% X查看命令( p" U2 `( P8 T9 G, `4 ~$ K
 keys(mapObj)
 & I- C4 b  Z6 [  S/ D3 u& k, s0 fvalues(mapObj)
 2 ~  M1 s* G- e2 o/ w7 O& R0 p# \9 h+ _; V+ }
 % c3 j# s4 D5 {
 样例:
 # @# `. ~) `# Q/ b+ f0 b. {  V4 N- b' k/ }
 >> keys(A)$ T" j/ @  r4 r) w; o2 M
 # q- w; `. A6 b* @* U( \% P2 \
 ans =: t# T& ~7 ^$ w% |5 J
 
 2 W" u( x. e! F  1×3 cell 数组
 2 W& U( k# I; v+ h, u3 L& z& y' W6 B7 z
 {/ F& g. z' b6 w8 _
 'A'}    {2 N1 M7 D- X2 Q* i7 D3 H
 'B'}    {
 7 d9 k; d; B& w& ^  ^* m       'C'}& \, x" ]! J! E" U$ q  z3 }
 3 d/ k/ ^0 |# ^: L5 F* |3 }- K! ?/ q+ V
 >> values(A)
 : e8 t! X& m, l2 X( o  G- s
 ) d. @' t$ x7 Mans =6 R' x- o3 o. r7 [
 5 ^: Q# D) b: O& i  X1 P; A
 1×3 cell 数组
 % o/ x4 ?4 [  E7 N6 n4 v1 U6 ?$ \- ]& S4 b
 {
 & U5 {0 ?8 Y8 W, y' \% O2 H       [95]}    {
 1 A0 k" k5 n$ j% x8 S       [85]}    {- Q2 V( n- \& I! g. r0 p7 c
 [75]}
 $ o6 }3 C8 S& ]$ A3 q0 S) L* {5 o2 P  I/ R; Y  U
 >>4 l6 C6 n1 C+ J$ o1 l9 h2 h4 S9 H
 
 ! M6 c' f0 k4 m5 s' d
 7 h# a: N; i6 \& }6 W* c7 X
 & W! W6 A( x( \5 U读取map对象; i9 f  q4 @. n  B2 K
 知道map的键读取对应的值( q  |+ U: {, }* m) l
 
 ( S. W8 ^0 _8 {; {  I! J0 I" }* LvalueName=mapName(keyName)
 - K+ V* T) }0 T3 @( F+ a% F; q4 h  m: w# Y" I
 / K( x* g3 x8 i' \" h# b/ ?
 样例:- W6 o4 n& S2 o! l+ p- b
 
 9 p: t6 v/ q% }- D8 s  M# K>> c=A('B')                                                %        读取一个值
 6 {6 j* F' K6 V. G+ v0 z% V+ ^1 N7 A2 \, D+ U1 W
 c =
 * t- _1 B' s8 |
 % n, w3 X" u8 z8 h1 y    85
 * G, Q' h0 d- j; w4 d8 q' Z+ O6 W5 U; ]: e0 p( c/ r
 >>
 2 a' U. h' w* [3 P8 Z$ b2 R+ z3 ^9 [& A/ U& F
 
 : D( q  w+ U$ D0 G2 A! Q* z知道多个键值读取方法:使用函数values+ K2 v4 r& y1 Y$ F
 ! j2 C' v. e! c2 p5 m" c& p# t5 ?& P5 Q
 values(mapObj,{
 % M7 `: l" X% o$ ?       'keyi','keyj',...})
 * }! y- W# u1 D+ K) h9 v8 v2 J* }6 v, u
 + h( i! Q) v# D+ s! o2 R% n$ v
 样例:
 * h2 a4 y: s: s# R& x& }! n7 _
 " H# L" Y9 t9 M0 u  {>> d=values(A,{5 u& U4 @0 l' D0 [! `
 'A','C'})
 , f* ]" j* D! r% N. _( c- \9 H8 f3 |! D6 n
 d =+ Z( O; U; C" Z/ ]- ^/ i
 ; \4 L: r& d- e- Q6 n! X
 1×2 cell 数组0 I; Z: b0 T' Z" R# G' L2 u+ [
 
 * t' k1 N3 U/ O$ t# f    {
 8 h# {1 d3 b+ w       [95]}    {+ k2 w9 U' E% Y$ i* D# T
 [75]}
 5 l  w& O" c6 t0 r# k
 * J3 ]3 t( k& h* Y# i  w9 M>>
 ) `6 `; d: f6 C+ U3 O0 v$ \8 v7 g( b1 a$ R* g
 
 : @6 N2 r5 J, x9 X4. 编辑map对象0 H* A% r& [' w$ w* p- M, S1 A; J
 + D3 D2 L% u' F* ]/ g6 j
 
 删除map对象中的key/values对:使用remove函数。: ?! q3 x; E1 l
 A+ ~7 s7 |( _$ Mremove('mapname','keyname')2 D9 _3 w/ ?- \# ^7 r
 
 3 ~. `7 y/ y- v# t) @6 S>> remove(A,'C'); e4 N; f+ z+ }8 x
 / z8 b" I9 ?$ ~3 Y1 f  ^3 a, Z
 ans =
 " Y4 P& V! O% z' A7 l  ]' c9 h& \5 r# g. I  i) \6 Y
 Map - 属性:
 " o+ M$ U6 P* j6 {6 f8 N& R5 D. X' V& H3 v; w$ A8 E' y
 Count: 2
 - t8 g. F: h6 o1 f      KeyType: char/ \' I/ H4 ]4 ?- ~2 t
 ValueType: double
 ' _' ]( N8 i+ o( C$ ^: ]2 ]2 E+ F3 a4 r6 D4 G0 w3 n' i0 ~
 >> keys(A)# Y' @0 q% `; q6 `
 
 r( {; W. n& Yans =
 - z7 {$ u; V; f7 ~2 t/ g
 0 q: W6 v& S; B5 k( i( A: p  1×2 cell 数组5 M: y" Z$ j9 B, m5 {5 \" p
 
 - T. E! V# X2 T3 B; L  {$ u    {# Y+ l9 U3 J4 z
 'A'}    {
 * h; n4 ~3 q  t' c# y! ]4 G$ X, b1 ^       'B'}; t. \4 N) a8 m. V0 v
 
 & x- ~4 o4 l: o& ?- W) ~8 T>> values(A)  N9 \1 ]: G  o5 s
 
 3 j) `) n! a5 }% U. zans =: g1 N' z% K9 {" x# v. q
 : p2 |, O+ g1 M/ r  X
 1×2 cell 数组
 7 g2 s' \0 q; d) U2 E
 " k  ?* f4 n9 F: b    {
 6 b3 Y7 @7 e5 [/ L0 I! U       [95]}    {
 $ _0 D* x+ ]! a* \. @       [85]}
 6 V( I+ T0 H) {: E& H. L! [+ c$ {$ f% ?: |' O
 >>
 $ m, Y$ V( y3 ]. S+ H6 H; R' r0 d5 c% ]1 L3 N0 x2 n# r( \9 F
 % X; r, b* x; K4 |2 t! {
 
 为map对象添加一个元素f, s3 I/ X/ W
 " m: b* e" O; [6 OexistingMapObj(newkeyname)=newvalue
 ) k$ e* F" Y; \; d; I$ n2 G: c% t& [2 W/ T0 _
 
 ! ?8 {3 e4 \4 D7 t>> A('D')=88
 * C% E" n/ |6 D& R; H+ D. R0 q- C3 J, x; R5 w# C
 A =
 - D* h; A) _) C0 [, t$ z% ]1 ~3 R5 a. Q) Z
 Map - 属性:
 ; h$ `4 [8 a0 n9 F: e! K4 C  B( h6 B" ^4 u" M9 ]; `2 @- E2 E- |
 Count: 3: v! j) q- E; J& P* ^5 C$ j
 KeyType: char
 + {1 `& j, ?. s" _# d    ValueType: double( a3 a0 h& y' F/ w) [8 E8 c* f
 
 - C( U4 g, G! s% {>> keys(A)/ D. f7 q0 v1 f# I# P" |0 N
 
 0 H, Q( O6 w9 y  Kans =3 O$ z! g- ]0 l9 V% @! c& B
 8 B* Q8 L: x- S
 1×3 cell 数组% N& a2 D- K+ {! o- {, \
 - E7 d8 a+ Y; I( b
 {
 , ~) w% z6 x' _4 {       'A'}    {( {, m2 C% V: q! J8 {$ K3 V% y, U
 'B'}    {
 + {, I! T8 |- [       'D'}3 ?! e* p2 C6 J' s# ]
 
 0 J6 }- ~2 v' y/ I6 z4 [>> values(A); v0 {- _% s! a- ?+ u5 O
 
 + Q( H; g. A5 e  L, @+ zans =
 5 w7 r. N) J* e( e4 u9 N4 K5 F" M/ m. P
 1×3 cell 数组6 C8 |" `' l. X; E; y8 m: ^
 7 m. ~/ S: S. o9 d( L: N% P
 {) y! f2 q! \, I# O0 o: Y2 L
 [95]}    {
 ' W9 j% R% ^+ e7 }2 l! U  i2 q6 N' o       [85]}    {9 L9 m2 v: A# m. Y5 |2 \! v
 [88]}5 D$ v, b* U, [$ \! G% j/ b
 8 x6 [3 ~0 p) F- O8 {/ s8 O
 >>
 " ^5 B4 R, C- Z# S* H2 v( T0 O0 a$ _3 c" W6 p3 ?. v' i1 P
 7 o: K9 R# }% E8 n7 p3 t) R8 O" R6 f
 , {, R: B5 u3 u: j' E/ ?6 ^( t6 |# p
 无法直接对keys进行修改,应当先删除要修改的key/values对,然后重新添加一个新的正确的。6 B- U* |* |( o
 
 & E! U& c7 O! M4 t9 K1 b9 L
 + H0 f3 L, C( N8 E: f' L修改values' e6 w/ ?8 r" @$ L
 直接进行赋值操作即可0 i% s& p# |; `/ ]
 8 p& S0 s" j% H0 C
 >> A('D')=100
 , `! a5 C) ?, x/ u- K1 U. ?& p( L, H: H6 ]3 S6 z3 y, Q* b
 A = 6 v8 d5 l2 s. |( N3 y/ ~9 d
 % d) Y9 Z5 Z8 N1 ~% K& ?
 Map - 属性:
 6 v6 r# B4 y" d+ r) A% [
 $ S3 H3 h% g( w$ s, p. }0 E, U        Count: 3( S# C& b" ^# @7 A
 KeyType: char
 3 ~, s2 Y( `  n# y' H. R) M    ValueType: double: i& _$ G5 h9 s
 - a- f6 B# @  W+ M$ _( i
 >> keys(A)
 3 E' {& H& ?0 J/ S
 3 H' c' X. g( @4 K/ o6 @ans =( o- u# G& V9 H) ~4 h
 3 X  B( p- @% x2 Q8 o% A; {
 1×3 cell 数组# Y  K1 q- S# H% Z& N: k
 
 , V9 S2 A% Y' `. ?    {# T; k  y  E9 {
 'A'}    {
 8 t; }3 a& z8 p  z- c6 \. Z/ i* R       'B'}    {' T- C5 G: z7 [
 'D'}
 2 W* V9 E, R% b3 S; B7 e# s& I$ ]
 # M) B, a: C8 P, B0 S1 i>> values(A)
 4 g4 ^% v6 m6 i" e3 h& S" W2 W4 C+ N% A/ f; d2 I
 ans =
 1 X# G$ P$ Z' d  o. h5 o' N/ [# l* h6 k  k! ^
 1×3 cell 数组
 . `! c! n; A' u3 Y" ]! K6 l' V* s; [) t+ n: A2 K# I
 {. |' e/ |* i; o! Q* W( v2 G
 [95]}    {
 2 j% K# {: }" S: @4 j$ Y       [85]}    {
 + l4 }+ q$ h, S9 ?; ^       [100]}, }1 o, ]+ A# J6 W5 F1 H) f9 _
 : M# r! x, g" j3 h2 e8 x
 >>2 C1 [9 f9 K: e) a5 \/ ^: k( T
 
 | 
 |