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

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

mildcat 楼主

2016-8-29 20:25:18

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

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

x
最全的c++map的用法

此文是复制来的0.0

1. map最基本的构造函数;
. K9 C) a4 M! Y% P$ X) Zmap<string ,int>mapstring; map<int,string >mapint;( x' v, k/ u/ H: _
map<sring,char>mapstring; map< char ,string>mapchar;
. A8 r0 b, t" }' D5 t) p# |map<char,int>mapchar; map<int ,char>mapint;

2. map添加数据;

map<int ,string>maplive;
$ [4 V9 M: k: l* G1 m4 H/ h1. maplive.insert(pair<int,string>(102,"aclive"));# X, ^- Y: Q2 v6 S
2. maplive.insert(map<int,string>::value_type(321,"hai"));+ H! i; r# L. |* E! T: p: h/ J7 E5 a
3. maplive[112]="April";//map中最简单最常用的插入添加!
# o( o# B" h, \! J. {5 T4 Y6 Q* ~

3. map中元素的查找:

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

map<int ,string >::iteratorl_it;; ( t2 `& b$ Q7 o4 _6 ^/ X% i
l_it=maplive.find(112);//返回的是一个指针/ \  c- P1 a+ V9 m9 g$ e3 O: I
if(l_it==maplive.end())
7 H( b/ k3 a; |% A9 u' p! n6 Xcout<<"we do not find112"<<endl;& U( K7 E9 [' U2 ]
elsecout<<"wo find112"<<endl;
* {. ^& C6 a9 H9 @# P

/ S9 k5 G. I3 E6 y

map<string,string>m;

if(m[112]=="")

cout<<"we do not find112"<<endl;' _* i  y# j! t

4. map中元素的删除:2 \. e1 F2 z! b0 A! ~; j
如果删除112;; S8 E; L; B& g- h3 |
map<int ,string>::iterator l_it;;( C+ O# @0 f: a0 L
l_it =maplive.find(112);: C6 G. K* Q9 m
if( l_it == maplive.end())& N+ x, [  l, R+ n% Y; `
cout<<"we do not find112"<<endl;
: U  T( F5 N) i: |else maplive.erase(l_it);//delete 112;9 S! U$ @3 Z" H1 I3 z

5. map中 swap的用法:
! @. O; |" S" }1 {Map中的swap不是一个容器中的元素交换,而是两个容器交换;
1 h  x) x  v4 G( J4 MFor example:$ K& y( T$ g* C  u8 l
#include<map>& B/ N4 `6 j$ i7 Q% f
#include<iostream>

usingnamespace std;

int main()
: }! g, w* B7 Z; j. o8 r) \. u{
7 ~" a. i+ V) qmap <int, int> m1, m2, m3;
+ N* }+ [8 J# {4 A, n! Nmap <int,int>::iterator m1_Iter;

m1.insert( pair <int, int>(1, 10 ) );
8 E% {% h3 ~! qm1.insert ( pair <int,int> ( 2, 20 ) );
3 ~( N4 t% G2 B; cm1.insert ( pair <int,int> ( 3, 30 ) );
4 e. u2 l. d6 p! d+ a- o: R1 sm2.insert ( pair <int,int> ( 10, 100 ) );: A+ o" P2 o) h7 s% e( E
m2.insert ( pair <int,int> ( 20, 200 ) );2 X* A% j; s, ]8 C: m% O& L
m3.insert ( pair <int,int> ( 30, 300 ) );

cout << "The original map m1is:";% p3 `7 Y7 U8 n! O7 M1 _7 J
for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )/ L- }" c, r) W
cout << " "<<m1_Iter->second;4 C8 [8 G! U  ^4 z- M
cout << "."<< endl;

// This isthe member function version of swap
0 C1 K( a7 k1 S1 C. i+ D* H/ V* j// m2 is said to be theargument map; m1 the target map
4 _6 W; ?2 {3 z0 L3 |, Nm1.swap( m2);

cout << "Afterswapping with m2, map m1 is:";: ^$ R/ k0 i* U
for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )7 ~( W5 I- Y$ z5 P' e
cout << " "<< m1_Iter ->second;/ Q5 q6 h6 M5 }) R
cout << "."<< endl;


  [' z% y  F9 p" K$ j) c, Xcout << "After swapping with m2, mapm2 is:";
& X( l. x& P' y9 ]. b1 \for ( m1_Iter = m2.begin( ); m1_Iter != m2.end(); m1_Iter++ )
- b5 R; p' B6 m6 s8 Xcout << " "<< m1_Iter ->second;
; R8 |3 m- ^; ~cout << "."<< endl;

7 u% `  W( D. @$ `6 D% @" D
// This is the specialized template version of swap
$ u$ {) C5 S& Y% kswap( m1, m3 );

cout << "Afterswapping with m3, map m1 is:";, X: l8 d5 U% l: x+ j
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end(); m1_Iter++ )
& h) h+ Q- Z! N1 I) R- qcout << " "<< m1_Iter ->second;
. q6 x2 g1 Q4 n3 [) jcout << "."<< endl;, v: Q5 m  l; r+ h8 j, U  _2 K3 y+ e
}

6. map的sort问题:+ c4 c; {( e8 ]6 L
Map中的元素是自动按key升序排序,所以不能对map用sort函数:
* a4 ?, b, D) h  }3 GFor example:
! w, M9 t5 `. a; L/ e# Y9 P' K#include<map>' `; l2 n7 d/ Y9 z
#include<iostream>

usingnamespace std;

int main( )/ X/ x4 X2 z6 [, i1 C9 a  C
{
8 B2 i) Z5 B' u2 h: F3 j/ d$ qmap<int, int> m1;
8 H* G; {0 C; X  Tmap <int,int>::iterator m1_Iter;

m1.insert (pair <int, int> (1, 20 ) );
$ D) o- P% L" R9 ^! F5 q6 X* Pm1.insert ( pair<int, int> ( 4, 40) );3 \3 X0 ?! Y7 C. ~/ t
m1.insert ( pair<int, int> ( 3, 60) );! O2 M7 a' k8 Y: ?& s8 _
m1.insert ( pair<int, int> ( 2, 50) );$ ^+ L" Y8 |  r0 b3 ?' |. |/ j
m1.insert ( pair<int, int> ( 6, 40) );, j( s$ d0 Z2 r; o
m1.insert ( pair<int, int> ( 7, 30) );

cout<< "The original map m1is:"<<endl;
7 F+ \. r, Z& b1 }0 }; C! V5 }for ( m1_Iter = m1.begin( );m1_Iter != m1.end( ); m1_Iter++ ); P. {: c: H. D5 W
cout << m1_Iter->first<<""<<m1_Iter->second<<endl;
* u& ^$ k- i7 B
1 C& [( P& e& S$ p1 b  v+ \1 H}8 K9 [; i$ |: D. W

The original map m1 is:. ^9 k6 ^$ T0 a2 T* m
1 20
; e9 ~3 D) `  Y& O2 50
; B" u6 d+ _; j: @! `3 60
( l% Z; S* ?# {+ N0 L4 40
1 E/ V  h# x1 ^  T6 40! q, C8 i' K- d3 y& m
7 30

7. map的基本操作函数:* V8 T* }/ V: j
C++Maps 是一种关联式容器,包含“关键字/值”对7 V1 O' u" I  z- I4 L
begin() 返回指向map头部的迭代器
! ^4 D. u. q8 X$ i$ F7 R5 H+ iclear() 删除所有元素
6 Z* A9 I' Z1 `- Rcount() 返回指定元素出现的次数
& i8 {: U5 p4 J3 oempty() 如果map为空则返回true% H+ t& w. x7 ^! N7 x
end() 返回指向map末尾的迭代器. r' J# z7 b. ?& ?
equal_range() 返回特殊条目的迭代器对  ~6 {$ S1 a. n& U' I
erase() 删除一个元素! w( K- k. C  l. _0 q& A
find() 查找一个元素
, M& J! o) u7 s) t2 y" oget_allocator() 返回map的配置器
0 k) q) Y3 x" d1 s. H+ C8 Qinsert() 插入元素, R( b* q" l( z1 ?2 P0 [# q* C& w
key_comp() 返回比较元素key的函数
, A! l0 J) a8 A* H, Hlower_bound() 返回键值>=给定元素的第一个位置
8 ]7 N: h) y& B, a. Y$ J1 h! d& Y! umax_size() 返回可以容纳的最大元素个数3 x# X& m) H; ^! r1 w& d+ o. J2 D
rbegin() 返回一个指向map尾部的逆向迭代器
4 ]3 p5 P8 r. ]* S& @% J& P( h$ U4 \rend() 返回一个指向map头部的逆向迭代器
' a, L# j/ y" K+ [$ F( Esize() 返回map中元素的个数* u% Y# u; B, T1 N% }: u$ l
swap() 交换两个map5 V7 j/ z/ Z  k" b% o
upper_bound() 返回键值>给定元素的第一个位置6 `7 }" N" O5 Z5 D. K6 H. U4 d
value_comp() 返回比较元素value的函数


$ i* F/ }0 b: O, c; C5 e" B
该会员没有填写今日想说内容.
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了