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 3380 0

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

mildcat 楼主

2016-8-29 20:25:18

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

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

x
最全的c++map的用法

此文是复制来的0.0

1. map最基本的构造函数;$ F, B3 H7 J7 O$ l2 h/ X6 z
map<string ,int>mapstring; map<int,string >mapint;
" @7 Z2 Z3 U6 `) w' y, M* wmap<sring,char>mapstring; map< char ,string>mapchar;
( l* j- R# f( Jmap<char,int>mapchar; map<int ,char>mapint;

2. map添加数据;

map<int ,string>maplive;, i+ |* ~+ _8 M4 b( v4 L( c* g9 M
1. maplive.insert(pair<int,string>(102,"aclive"));5 B1 j/ Z9 ]6 a% |* Y
2. maplive.insert(map<int,string>::value_type(321,"hai"));: e6 I4 e! D& V" d
3. maplive[112]="April";//map中最简单最常用的插入添加!7 b7 W7 p+ k' N  C1 d% I7 P" P4 J

3. map中元素的查找:

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

map<int ,string >::iteratorl_it;; & `( [1 K  y' g
l_it=maplive.find(112);//返回的是一个指针
0 ^: h7 [0 O* V: e3 Y6 ]if(l_it==maplive.end())4 O0 S( y3 b' u
cout<<"we do not find112"<<endl;
9 B  n9 S2 p; v9 [5 s( Selsecout<<"wo find112"<<endl;
" k" Q, C1 U% \1 E

) F. {9 S) \, y8 r7 o( W& m- O

map<string,string>m;

if(m[112]=="")

cout<<"we do not find112"<<endl;
$ d, U+ Z" a# p) R6 G# E

4. map中元素的删除:0 Q5 I0 ^3 t( N$ e& q, k3 Z8 J* \+ \
如果删除112;
3 [8 e9 k5 a! P$ e2 ^4 ~map<int ,string>::iterator l_it;;3 {6 j) w0 j! |( P3 P. \7 y
l_it =maplive.find(112);
+ v6 U* _  H% w- G! Vif( l_it == maplive.end())
: @) i  D! e. v2 G' N+ rcout<<"we do not find112"<<endl;9 ]2 Q) u3 ^) W+ x4 g5 w
else maplive.erase(l_it);//delete 112;) f) }8 g8 p1 X- z% u: o

5. map中 swap的用法:
- D& F2 O' {' [3 g# m% nMap中的swap不是一个容器中的元素交换,而是两个容器交换;
8 _0 H7 D. O! G# o6 R7 ~& GFor example:/ e3 T8 C* r0 f- w: J2 `9 F; Q
#include<map>) d- R* U: M1 d; f, L0 [+ b) y9 M: E
#include<iostream>

usingnamespace std;

int main()
  i( _; o5 A' h2 L! C{) _9 l# Z# y7 y' y2 N
map <int, int> m1, m2, m3;9 E( W1 Z* p6 n$ {% O/ {" N& X, ~
map <int,int>::iterator m1_Iter;

m1.insert( pair <int, int>(1, 10 ) );8 q) R3 m0 Z8 z& n( a8 H' w
m1.insert ( pair <int,int> ( 2, 20 ) );1 |/ y# M7 B# E% n/ `' f8 j( i
m1.insert ( pair <int,int> ( 3, 30 ) );
) b1 F) a9 M- `1 k/ sm2.insert ( pair <int,int> ( 10, 100 ) );' l5 E3 C( F( O4 ^! D9 v9 d: M1 b
m2.insert ( pair <int,int> ( 20, 200 ) );8 C# K+ y3 n! E  \
m3.insert ( pair <int,int> ( 30, 300 ) );

cout << "The original map m1is:";
  W' K9 O  H3 F# J; Wfor ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )
# N' [' p+ q( Acout << " "<<m1_Iter->second;6 d+ h5 o% w% Q' ], r
cout << "."<< endl;

// This isthe member function version of swap
6 r2 l0 {! c( X+ m9 _// m2 is said to be theargument map; m1 the target map
" t# c8 O0 l  {2 U1 n: z( t8 bm1.swap( m2);

cout << "Afterswapping with m2, map m1 is:";8 X. y" N6 {" E
for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )1 o. a+ [  N+ ^3 V8 p* {1 o) f
cout << " "<< m1_Iter ->second;
  Z; p; @# j0 h; E) b7 ~4 hcout << "."<< endl;

7 e7 k  |! \( b: m2 {! E) B
cout << "After swapping with m2, mapm2 is:";
( Y6 J6 v" V9 Vfor ( m1_Iter = m2.begin( ); m1_Iter != m2.end(); m1_Iter++ )5 z; B6 C% H4 F' E6 b  r
cout << " "<< m1_Iter ->second;! ?5 T! p$ m- B- w
cout << "."<< endl;


7 _/ g; z8 v. A. ?. J  J// This is the specialized template version of swap
0 V, D# _. U2 Y( l( W6 Nswap( m1, m3 );

cout << "Afterswapping with m3, map m1 is:";
0 y1 g1 W5 g* u. s& Jfor ( m1_Iter = m1.begin( ); m1_Iter != m1.end(); m1_Iter++ )# s: N% w2 i7 C# J1 k
cout << " "<< m1_Iter ->second;" C( `; R1 A9 D8 g+ r) g
cout << "."<< endl;
4 u; S& m4 D3 o7 v/ I}

6. map的sort问题:
# ~' N8 ]" F3 r7 D. QMap中的元素是自动按key升序排序,所以不能对map用sort函数:
3 S. s7 D* y2 g$ |For example:& d' \0 J0 T* w- S
#include<map>
8 \! q% a0 N: H7 P* L#include<iostream>

usingnamespace std;

int main( )
/ S9 J: G* G2 m7 ^6 z' @, G3 v{
3 e6 W8 K& [. Y; u% tmap<int, int> m1;
3 X" I9 g- m; t0 t1 amap <int,int>::iterator m1_Iter;

m1.insert (pair <int, int> (1, 20 ) );0 a/ i7 b# J: T. T
m1.insert ( pair<int, int> ( 4, 40) );2 a7 Q, l: c# H" Y3 |$ v' `6 M- k
m1.insert ( pair<int, int> ( 3, 60) );
" W9 b  v! I) z% N3 ]% @+ E) h  Sm1.insert ( pair<int, int> ( 2, 50) );
) U& z& y; j# W6 i8 v0 m# `" Dm1.insert ( pair<int, int> ( 6, 40) );
( _6 R( ]! {+ H, q  e( {m1.insert ( pair<int, int> ( 7, 30) );

cout<< "The original map m1is:"<<endl;
+ ^- f* B: O7 _5 J: Efor ( m1_Iter = m1.begin( );m1_Iter != m1.end( ); m1_Iter++ )
; z8 D( |1 d! ^9 acout << m1_Iter->first<<""<<m1_Iter->second<<endl;
8 S+ [; d6 O4 q: _( U
' x1 v8 H6 o/ a* T* K* L9 r, y}; @9 i/ C/ ]: M; x! x( o* n8 d

The original map m1 is:
- a% Z4 r) s, b* j" N2 R3 M1 20# X# e4 S& P; D+ m4 c
2 50
( a  d9 W- ]  d: o' K7 E6 c+ p3 60
4 n: _# e* S; M4 40
3 b( A) |/ Q+ }$ F, H) @7 a6 40
6 F8 c/ e" j* E- C' c0 e7 30

7. map的基本操作函数:7 {' P% ?$ }' _& x
C++Maps 是一种关联式容器,包含“关键字/值”对( }- p* \( }2 x
begin() 返回指向map头部的迭代器* X$ ?2 i' R3 z
clear() 删除所有元素- a: e, d( \1 w; Z# X( m+ s5 g% R
count() 返回指定元素出现的次数
4 x4 C: b* G( K1 G0 y: Xempty() 如果map为空则返回true" Q0 r( \9 n$ b8 W  n+ X
end() 返回指向map末尾的迭代器
; |5 q! A/ P+ u& ]+ u0 M2 \equal_range() 返回特殊条目的迭代器对4 q7 |" }9 v6 @' {: N
erase() 删除一个元素
7 n8 ?8 r5 `1 o; A$ q8 E& p& Y3 h3 [find() 查找一个元素
- |3 A/ e  {0 g( a4 Kget_allocator() 返回map的配置器
4 D* k7 i0 Y  C  R8 _insert() 插入元素. g/ G( d/ i' }) g3 \
key_comp() 返回比较元素key的函数6 M4 u- m5 R/ i" P' _0 ?  l+ ?2 N
lower_bound() 返回键值>=给定元素的第一个位置
% I" Q) k" J; u' \+ n, imax_size() 返回可以容纳的最大元素个数
3 R# P2 d1 j9 A  P6 B! x* `3 urbegin() 返回一个指向map尾部的逆向迭代器" r9 [5 F  Y* Y2 \2 v
rend() 返回一个指向map头部的逆向迭代器
" g4 r3 Q: o4 V8 J! l( bsize() 返回map中元素的个数$ U- k2 h3 C$ N  ^
swap() 交换两个map2 h* A+ Z# M. h, p
upper_bound() 返回键值>给定元素的第一个位置
# ^/ k3 r; {  cvalue_comp() 返回比较元素value的函数


+ x9 v9 {, }/ e9 m' h) }
该会员没有填写今日想说内容.
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了