|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1.map的构造函数; _- q% a5 Z; p/ i8 Q# U
Map<int, string> mapStudent;
( M: j. R& g8 d* g# c8 d2. 数据的插入
/ h) ~5 W2 \6 c在构造map容器后
; J9 Q4 T, y6 u# P7 u9 t& y第一种:用insert函数插入pair数据
2 \. R9 x! L! M/ f& O/ N5 U6 I: r#pragma warning (disable:4786) )# g! A% T2 q: Y7 j5 x8 Y4 [
#include <map>
' L+ r" j/ X j+ C$ ]) [/ k8 K#include <string>1 t. `* C: [% k& ?/ A
#include <iostream>$ f; W2 J) ?1 a0 R' D! o4 [
Using namespace std;
0 Z' M+ z7 ` x% d0 e# HInt main()- T' B+ l5 v2 [
{
! }; ?0 n8 y8 Q# {$ d" A Map<int, string> mapStudent;
( @) O+ p) j5 _3 |, C+ n mapStudent.insert(pair<int, string>(1, “student_one”));6 j) p0 A! t( f
mapStudent.insert(pair<int, string>(2, “student_two”));+ _: g; R& m. |- l9 }9 N1 ^" d
mapStudent.insert(pair<int, string>(3, “student_three”));
9 j8 V4 G) ^. u4 A( I map<int, string>::iterator iter;! d2 u8 }1 L8 w6 _$ f0 T: f
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
$ q" J/ O: _6 c2 @5 [& G4 W7 D{5 o, X) ~4 j$ O6 \7 D! ?' w3 i5 ]
Cout<<iter->first<<” ”<<iter->second<<end;/ o$ N0 M$ @+ b" m+ ^& _3 `
}: R0 I7 Y. ^( ^4 ~& H. C4 q7 P0 P
}, U8 f& r& Y" h8 u
第二种:用insert函数插入value_type数据,下面举例说明/ f7 E" d t2 _0 ~9 |: c
#include <map>! n$ g7 c9 w/ O, Z9 U
#include <string>
+ h% G7 n& {+ [#include <iostream>6 r4 i* Y$ |$ }- R$ b) L
Using namespace std;. i7 q4 j0 S5 |* R; C* C
Int main()
5 ~+ E# K, F9 n) w* p# R{7 P9 Q! y2 D: U; A M1 G3 ~
Map<int, string> mapStudent;. j# }9 J6 R. v; a' \
mapStudent.insert(map<int, string>::value_type (1, “student_one”));0 b! K' a9 w2 y3 \1 p* t
mapStudent.insert(map<int, string>::value_type (2, “student_two”));4 ~, s! ?" d: z- U+ j& ?% U
mapStudent.insert(map<int, string>::value_type (3, “student_three”));
' k* [* Y3 K _+ u. W6 ]3 N map<int, string>::iterator iter;4 O) Y. m1 M: w5 f4 C R- t
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)' G# C3 K+ v0 u9 M
{
5 j# V# a# X/ Z; v$ w Cout<<iter->first<<” ”<<iter->second<<end;
3 ?) [' x- I3 t. x3 r+ ~6 \. f}2 ^/ x7 d7 d% J1 b* v0 J: _9 u
}( X) _+ R* P% t4 V3 x' \9 E
第三种:用数组方式插入数据,下面举例说明
7 w8 A8 D0 i$ _& y1 P. P#include <map>
- B# k1 U; D; Z2 ?# h5 r. J#include <string>
- z* K6 I9 {- X- i#include <iostream>
8 @7 d" L/ R- M+ K1 CUsing namespace std;
/ K- | e8 C j* mInt main()5 g& G1 @8 ~& p; o3 Q
{6 m' I- S" p2 \: G. v6 y. v+ \
Map<int, string> mapStudent;
# w/ G+ v: K4 y! I mapStudent[1] = “student_one”;
$ P- ^: z: s8 B: d! A mapStudent[2] = “student_two”;
- t4 q9 C: F$ E8 y mapStudent[3] = “student_three”; `3 k: q. p9 u# I
map<int, string>::iterator iter;9 ]) R; d$ P& Q& N d
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
: P4 h8 k n+ Q1 r{
1 S! @2 n2 u4 x. T Cout<<iter->first<<” ”<<iter->second<<end;3 v* o" Z$ w- ?0 i
}; ^9 ]/ R! B" Y
}3 c# h. P9 _! c% f9 A
以上三种用法,虽然都可以实现数据的插入,但是它们是有区别的,当然了第一种和第二种在效果上是完成一样的,用insert函数插入数据,在数据的插入上涉及到集合的唯一性这个概念,即当map中有这个关键字时,insert操作是插入数据不了的,但是用数组方式就不同了,它可以覆盖以前该关键字对应的值,用程序说明/ L7 Y; ~+ E7 m* U
mapStudent.insert(map<int, string>::value_type (1, “student_one”));3 w% A6 o3 d# V8 L. f, D( c/ z
mapStudent.insert(map<int, string>::value_type (1, “student_two”));
' N* {; K- j. }& V5 `5 u上面这两条语句执行后,map中1这个关键字对应的值是“student_one”,第二条语句并没有生效,那么这就涉及到我们怎么知道insert语句是否插入成功的问题了,可以用pair来获得是否插入成功,程序如下0 b$ o: E+ z, `# H
Pair<map<int, string>::iterator, bool> Insert_Pair;
: D+ H7 u4 l9 S3 { qInsert_Pair = mapStudent.insert(map<int, string>::value_type (1, “student_one”));
4 S; {3 M; G( d0 N" \- s/ ?8 T6 g7 n我们通过pair的第二个变量来知道是否插入成功,它的第一个变量返回的是一个map的迭代器,如果插入成功的话Insert_Pair.second应该是true的,否则为false。
3 t- M" K$ ~; V+ n8 Y下面给出完成代码,演示插入成功与否问题
4 ]- y I9 M. D$ ?; E9 @#include <map>
6 Q! t, t! k3 U6 b; \9 _0 U#include <string>
/ s: y% n5 T' D% y& X1 ]#include <iostream>
& |7 q0 S4 Z, ]7 UUsing namespace std;8 d( p" S6 c, [1 X9 T
Int main()" c- b) p1 _* @& V
{
. S, }( `2 E2 Z0 e$ }/ q b Map<int, string> mapStudent;
% X, }. ~" \$ ^4 i; ~ fPair<map<int, string>::iterator, bool> Insert_Pair;3 ^3 C" H: V. H$ a! m0 b9 l6 p
Insert_Pair = mapStudent.insert(pair<int, string>(1, “student_one”));
+ N* w9 m6 Q+ K; p4 {: W c' g If(Insert_Pair.second == true)
$ c, X1 t% ]5 B8 }9 P) J/ i' ~ {1 v" j' d' T) U7 q# Z" g4 {( h+ U% r- p
Cout<<”Insert Successfully”<<endl;
1 A# _0 ~$ J. s: Y8 |+ g& M } ]/ }( X5 V P
Else. z3 [0 G; u, o( V o u- J
{- f1 v0 I" q8 ]7 f) u/ D; R; h$ Y
Cout<<”Insert Failure”<<endl;9 A. w! m3 [: G. u" b I I
}/ ~8 I& R1 T3 A
|
|