PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[转载电子书] 最全的c++map的用法

[复制链接]

2016-8-29 20:25:18 3410 0

mildcat 发表于 2016-8-29 20:25:18 |阅读模式

mildcat 楼主

2016-8-29 20:25:18

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
最全的c++map的用法

此文是复制来的0.0

1. map最基本的构造函数;6 k- ^( V# d% m" }  @" p# l- C
map<string ,int>mapstring; map<int,string >mapint;  ]& X" o  E4 k$ C4 B/ v( ~1 k
map<sring,char>mapstring; map< char ,string>mapchar;* l+ U1 H$ z: E$ I: {7 b
map<char,int>mapchar; map<int ,char>mapint;

2. map添加数据;

map<int ,string>maplive;1 k( Q& ?- `5 R" ~* A
1. maplive.insert(pair<int,string>(102,"aclive"));
0 Q9 ^( h  l5 D1 ]; Z! v' P+ E2. maplive.insert(map<int,string>::value_type(321,"hai"));
9 q& d+ f( w# U$ p: ]3. maplive[112]="April";//map中最简单最常用的插入添加!' Z& ]3 ~  q, {" g/ I- {$ ^4 C

3. map中元素的查找:

find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。

map<int ,string >::iteratorl_it;;
1 i1 P4 y7 X! O9 s0 b. ml_it=maplive.find(112);//返回的是一个指针' w, `4 ~$ }# e4 I, o+ R) o$ H
if(l_it==maplive.end())
6 p- J2 P. c! v9 k2 |7 D9 _cout<<"we do not find112"<<endl;) C+ ^: k) O8 y5 P* A. K
elsecout<<"wo find112"<<endl;! t5 Z$ H* M5 q+ ?4 [2 W0 M" }# Z0 E

% X! Q; i* @: d9 m* Q) _* }

map<string,string>m;

if(m[112]=="")

cout<<"we do not find112"<<endl;% a0 a# c6 p4 H: {# A- J

4. map中元素的删除:2 N8 F, [4 G( T: B) o
如果删除112;
! R/ B2 f) P( P; ~map<int ,string>::iterator l_it;;
) |8 x6 t) s3 g' W& F) F2 dl_it =maplive.find(112);: Y$ _' ?9 n& r( u3 Z: H$ H& @6 w
if( l_it == maplive.end())! r3 z( ?% ^9 z, m# v) b
cout<<"we do not find112"<<endl;7 Q3 E& \7 y) s# K' ]" w
else maplive.erase(l_it);//delete 112;# o0 O" K3 _, E/ x4 F

5. map中 swap的用法:: M& ?! O2 G" D8 ?0 \) s
Map中的swap不是一个容器中的元素交换,而是两个容器交换;6 s6 D4 E$ @4 Q8 @
For example:
7 F1 x' c4 |6 A5 w! Y6 K#include<map>
9 a6 `2 a; U: i/ m! v: i7 f% ~8 J#include<iostream>

usingnamespace std;

int main()3 C+ d# Z6 K9 f* X9 I' {: x
{
) i, b7 D9 |7 z6 n8 ?map <int, int> m1, m2, m3;
8 z( E9 B. L+ x0 j5 @5 @map <int,int>::iterator m1_Iter;

m1.insert( pair <int, int>(1, 10 ) );
8 m# a7 L7 C- W# Q3 g) h3 m5 O, N8 jm1.insert ( pair <int,int> ( 2, 20 ) );) y9 k) O; w: l" b2 y4 M7 y
m1.insert ( pair <int,int> ( 3, 30 ) );' J; j, [) J9 |
m2.insert ( pair <int,int> ( 10, 100 ) );) l! _, U5 o# D' G: }' _
m2.insert ( pair <int,int> ( 20, 200 ) );( n/ |5 |: ^/ p. i5 [/ ~
m3.insert ( pair <int,int> ( 30, 300 ) );

cout << "The original map m1is:";
: U* ^( _" |" q, z8 j" Ifor ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )7 H1 b* h( c8 z6 ^
cout << " "<<m1_Iter->second;
& C. r& S9 W9 @' {% I, O" Q% Scout << "."<< endl;

// This isthe member function version of swap* m+ B1 }, M$ p. b9 `5 }4 A( @" z! c1 H
// m2 is said to be theargument map; m1 the target map: B7 x) x3 W! Z6 O1 P# r
m1.swap( m2);

cout << "Afterswapping with m2, map m1 is:";: F" l2 S* n6 }4 I: D  @% D
for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )
( R( |9 K4 I: \$ S$ a; t5 ~  Vcout << " "<< m1_Iter ->second;. Y( C: w4 i  z/ \3 M3 _
cout << "."<< endl;


+ h: i4 k; ]: z' a. ]. v, M/ }2 R7 {cout << "After swapping with m2, mapm2 is:";
! f3 w9 X* N( hfor ( m1_Iter = m2.begin( ); m1_Iter != m2.end(); m1_Iter++ )
1 `. K5 n' ^( h2 t/ Pcout << " "<< m1_Iter ->second;* z" _0 U; ~, T* \8 [6 M; X
cout << "."<< endl;

, o, v( }: P7 r, B. V
// This is the specialized template version of swap
; u0 Z5 `; c* f, l' P/ i1 Iswap( m1, m3 );

cout << "Afterswapping with m3, map m1 is:";: E$ a6 U$ ~, L  ~
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end(); m1_Iter++ )
$ Z3 }, u/ R0 i3 ycout << " "<< m1_Iter ->second;
0 a+ b2 Y$ Z# D4 @& y2 bcout << "."<< endl;0 D8 f" @8 E  S* B
}

6. map的sort问题:
6 ~" F3 p8 O% ^6 PMap中的元素是自动按key升序排序,所以不能对map用sort函数:3 i' J0 R$ Z1 x5 X
For example:
' h+ B& w: z3 d* }/ B( S; u#include<map>
+ |0 z* F. [, O8 i#include<iostream>

usingnamespace std;

int main( )4 A& L* ^8 M5 t1 n
{
% U' k; a; _! M6 @) P. |2 p- tmap<int, int> m1;
/ n, S$ T6 u; f5 e5 h9 K2 \# ]2 pmap <int,int>::iterator m1_Iter;

m1.insert (pair <int, int> (1, 20 ) );
- Z0 n" e  n2 R5 M) i, _m1.insert ( pair<int, int> ( 4, 40) );
6 {- g6 Q: x! T5 om1.insert ( pair<int, int> ( 3, 60) );: Q! }, M( j' k$ p
m1.insert ( pair<int, int> ( 2, 50) );+ z3 W$ n: C: w. j
m1.insert ( pair<int, int> ( 6, 40) );
, C% Q5 i7 K- R/ C. }m1.insert ( pair<int, int> ( 7, 30) );

cout<< "The original map m1is:"<<endl;7 H1 W# @  m; j" h
for ( m1_Iter = m1.begin( );m1_Iter != m1.end( ); m1_Iter++ )) f3 Y: E& i3 C! m4 t3 Y& R
cout << m1_Iter->first<<""<<m1_Iter->second<<endl;
9 @/ Z; \+ m7 q' y, f" e, X+ T( l! N0 V
}
4 y- C2 r/ h7 b0 M1 A

The original map m1 is:0 }) V+ m' t) i3 I
1 202 Y0 A6 S) l' G+ U5 M
2 50# D8 G3 w1 t: y
3 60" e) u9 a/ d. e3 E: m  B" B; j
4 40" B/ s" j* V, l9 d3 H
6 40
8 N' I  P! R- l5 _, v9 ]7 30

7. map的基本操作函数:
; o2 F- o- x+ y+ ]. ]C++Maps 是一种关联式容器,包含“关键字/值”对
% a0 j! }, }! A3 Lbegin() 返回指向map头部的迭代器
0 Y7 H: \9 u8 m/ f/ y6 Wclear() 删除所有元素; t6 l5 A+ d$ a/ u: y4 @" k9 r
count() 返回指定元素出现的次数. I; T4 G$ H1 [5 d* A' m* A* z
empty() 如果map为空则返回true' g8 \  L0 M) N
end() 返回指向map末尾的迭代器! F: ]. y& g* i. T
equal_range() 返回特殊条目的迭代器对
+ A4 U- q# i, k* m8 b" }) i- H) cerase() 删除一个元素  `$ y4 t, Y1 l5 s/ n& y% ]5 V; k( S
find() 查找一个元素( M0 Y) S# c" S, m5 t, ?* g
get_allocator() 返回map的配置器* A1 Q" l6 u  K
insert() 插入元素
7 f; D# t2 j7 N; L+ w5 l3 akey_comp() 返回比较元素key的函数
, _% @7 ~/ i  _' C& `3 q% v- Ulower_bound() 返回键值>=给定元素的第一个位置
9 w, `( |9 K. _7 D) a0 Cmax_size() 返回可以容纳的最大元素个数/ R) p! D  m: W5 U0 j0 L! Z
rbegin() 返回一个指向map尾部的逆向迭代器/ t) N& R9 F2 A! l: a- ]
rend() 返回一个指向map头部的逆向迭代器
$ T* z/ ^) d: B2 `3 }size() 返回map中元素的个数
. Q& B" s6 s( m" C  aswap() 交换两个map# K& u/ g+ A+ c) |) k5 l( ]
upper_bound() 返回键值>给定元素的第一个位置/ g0 Z) t! S6 U# R8 d
value_comp() 返回比较元素value的函数

# d  T' ?) s8 K* ?
该会员没有填写今日想说内容.
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了