|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1.map的构造函数, }( n9 L1 J0 V) e! I1 l9 G: F. E
Map<int, string> mapStudent;
/ c! C% h" ?# [& A2. 数据的插入
# X2 s6 j1 e$ C( V A4 Z M' L' A" U在构造map容器后
! Z+ H1 N5 s9 T {; M第一种:用insert函数插入pair数据% f1 @9 G* F; E1 D- s
#pragma warning (disable:4786) )4 a j0 N+ j$ `" [! ?3 I
#include <map>
% _) B( v0 u$ ]+ L' C8 ^#include <string>
7 \1 E; j; {, d8 O7 q" w#include <iostream>: v/ Z2 N _' e
Using namespace std;7 x c! ~ o Q. t- [) p
Int main()2 y' w- J4 [) g$ t7 j
{
- x; q ~3 Y1 H. ^0 Y$ F5 f8 U Map<int, string> mapStudent;
# Q$ }0 F2 x/ H8 d mapStudent.insert(pair<int, string>(1, “student_one”));
6 E& f! O( l3 n u. X; f" s) @! B mapStudent.insert(pair<int, string>(2, “student_two”));
+ l( g1 i9 v# J, E$ D* N$ d- Q' ] mapStudent.insert(pair<int, string>(3, “student_three”));
3 O! I% i, k _2 s map<int, string>::iterator iter;3 a5 l/ W, j2 b6 k
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)2 E6 n$ h9 Y& O
{
C3 m. ?# B7 n0 D: S Cout<<iter->first<<” ”<<iter->second<<end;' g- d0 u* T. [8 N8 q
}
0 O' a- z2 L5 z! G7 b% I}7 f8 |; p4 x+ e' a- N# r- o+ U3 T6 @
第二种:用insert函数插入value_type数据,下面举例说明
& Q4 b# Q s2 e/ C#include <map>
5 H; ^5 |4 W) Q( V8 a#include <string>% {1 B0 V8 `7 l
#include <iostream>& m: S# s# ]6 N2 b6 A! Q% l' t
Using namespace std;
& O' b$ u. K$ W) | o- ]; kInt main()
$ S0 S# A2 [( J{! J+ j6 z* o3 v$ e& v. T o$ i
Map<int, string> mapStudent;
& F* k- z4 T% M) @ mapStudent.insert(map<int, string>::value_type (1, “student_one”));
5 A5 [+ I# {, e mapStudent.insert(map<int, string>::value_type (2, “student_two”));/ [ ]# G% K* F% X: W: |7 N5 r
mapStudent.insert(map<int, string>::value_type (3, “student_three”));
5 E( v% j0 X( Z- Q Y9 Q9 L3 U map<int, string>::iterator iter;
( }( {% M& {- L0 ~ for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)0 ^) {" w e+ h6 V2 n9 U* F; I/ ?
{2 M" ~8 @- h$ f+ i O; m
Cout<<iter->first<<” ”<<iter->second<<end;/ L5 p( c5 X" i0 o
}
5 F; Q, s8 I9 M}
% U E$ `: g5 c' d+ L! W/ `& i第三种:用数组方式插入数据,下面举例说明
( @0 U9 G, S6 }#include <map>
$ o* i8 a6 F% S" q#include <string>
( Z, J; p) f* C$ X% G#include <iostream>/ D, p6 z7 V5 O) [& t1 _
Using namespace std;9 g3 ? d" Q: F, _
Int main()$ z3 R, I5 R) m0 [: P E* s0 n
{
- |% V2 C! Q4 T3 b; j Map<int, string> mapStudent;0 s; L+ Y0 I: o( @) p: Z
mapStudent[1] = “student_one”;
% N1 Q1 T" F% \& g mapStudent[2] = “student_two”;
% E7 i9 W& X& Z( b- H4 T2 e7 g mapStudent[3] = “student_three”;
& e! N; H. q: ~. T map<int, string>::iterator iter;9 {& ^5 ~; Q. A& _
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)# r& B& r& L8 E$ c# u
{
1 @7 e% N6 E/ Z$ b Cout<<iter->first<<” ”<<iter->second<<end;& I" T2 e% ~8 p; F/ x
}: O5 x; m2 N- @
}# J3 \2 u4 H; `7 s
以上三种用法,虽然都可以实现数据的插入,但是它们是有区别的,当然了第一种和第二种在效果上是完成一样的,用insert函数插入数据,在数据的插入上涉及到集合的唯一性这个概念,即当map中有这个关键字时,insert操作是插入数据不了的,但是用数组方式就不同了,它可以覆盖以前该关键字对应的值,用程序说明1 X, Q% N' T3 a& Z6 C' v N' f
mapStudent.insert(map<int, string>::value_type (1, “student_one”));' ]: d$ `! |9 q0 y. }& @$ p& L% k
mapStudent.insert(map<int, string>::value_type (1, “student_two”));" N* Q4 w3 R R, q& J5 P* H/ H+ n
上面这两条语句执行后,map中1这个关键字对应的值是“student_one”,第二条语句并没有生效,那么这就涉及到我们怎么知道insert语句是否插入成功的问题了,可以用pair来获得是否插入成功,程序如下
- s6 |. G7 \7 oPair<map<int, string>::iterator, bool> Insert_Pair;2 i3 A6 J% p4 H$ a- i
Insert_Pair = mapStudent.insert(map<int, string>::value_type (1, “student_one”));
6 W: G- ^; \1 r6 S! Q7 A我们通过pair的第二个变量来知道是否插入成功,它的第一个变量返回的是一个map的迭代器,如果插入成功的话Insert_Pair.second应该是true的,否则为false。3 r* R6 O/ [( E/ w7 o" D) T5 I
下面给出完成代码,演示插入成功与否问题
/ p$ M, S( k( U#include <map>+ y2 ^, `: P' H* d( {8 a
#include <string>
; D& A% ^# v+ i" N6 c: u+ a7 L#include <iostream>% u x5 q! i) X
Using namespace std;5 \2 i6 q$ [# |1 L3 I% |% _4 ?
Int main()
; H% Y1 m4 o) i a: z; Y' t, \/ ^5 p$ N{2 U9 K0 J0 x' o" d4 H' S: B' Z0 }4 s
Map<int, string> mapStudent;# e$ h* O- x5 w! d
Pair<map<int, string>::iterator, bool> Insert_Pair;
. u/ y, A C2 Y( j Insert_Pair = mapStudent.insert(pair<int, string>(1, “student_one”));
. x) {, r K& U9 T$ z* P If(Insert_Pair.second == true)% _ p8 W3 S1 ?- p7 `
{1 ^; N6 o5 o2 L3 H- f
Cout<<”Insert Successfully”<<endl;
; t! m( I# o5 p }2 c. f$ H" n, u" e& h6 J
Else
2 }4 j- U" {4 _3 A f( v6 a( n/ ? {
1 h% S M3 p+ r) s! k3 \ Cout<<”Insert Failure”<<endl;3 `7 @$ `* a$ j& N+ q W$ w
}* b# \; a6 ~7 V: X/ d
|
|