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

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

mildcat 楼主

2016-8-29 20:25:18

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

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

x
最全的c++map的用法

此文是复制来的0.0

1. map最基本的构造函数;
: M0 q. a& B5 tmap<string ,int>mapstring; map<int,string >mapint;
* y, }$ G& ?- M  r$ u) w% omap<sring,char>mapstring; map< char ,string>mapchar;; w/ k5 F! O) r- z8 F" {" q+ I! v
map<char,int>mapchar; map<int ,char>mapint;

2. map添加数据;

map<int ,string>maplive;
% ?9 l! x0 Z! |" S/ T: P! I1. maplive.insert(pair<int,string>(102,"aclive"));$ a# Z- P  L4 a2 v3 L4 T
2. maplive.insert(map<int,string>::value_type(321,"hai"));# Q8 V) B; p0 [4 e8 |
3. maplive[112]="April";//map中最简单最常用的插入添加!
; @$ F1 @; A8 E3 e9 ]

3. map中元素的查找:

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

map<int ,string >::iteratorl_it;;
0 y; }; b. |1 [" b, P# k: Dl_it=maplive.find(112);//返回的是一个指针5 n8 V; u9 k7 l
if(l_it==maplive.end())
: J4 J& w+ Q. d, O# s7 P$ E! Mcout<<"we do not find112"<<endl;% j6 X# N' e( ^* U; [/ `  s$ m" {
elsecout<<"wo find112"<<endl;) j# n1 i( b1 t+ S" M5 v

, ]7 d% b# p2 b& J) {  X

map<string,string>m;

if(m[112]=="")

cout<<"we do not find112"<<endl;
! }8 U% S- F( N' U& C( H

4. map中元素的删除:( v8 Z, z1 U0 P7 d- H: x
如果删除112;, w1 s- N  i2 l
map<int ,string>::iterator l_it;;+ z' {; k# _$ t; B9 o" K7 j
l_it =maplive.find(112);9 J3 b) W; h2 u  v' i$ e8 D
if( l_it == maplive.end())
% A; d$ S+ g5 pcout<<"we do not find112"<<endl;) b2 }9 i$ F/ H# w* n6 g
else maplive.erase(l_it);//delete 112;, R5 Y2 X* S# q! Z7 i; \

5. map中 swap的用法:
$ r$ M2 W9 U# N7 [5 z) C) j$ z2 hMap中的swap不是一个容器中的元素交换,而是两个容器交换;
, K4 N8 Y' w6 h3 E9 g) gFor example:( r8 C6 @# ]5 @- n0 W! a5 r) C
#include<map>+ H2 a9 o% f& `% ?9 C& J' p5 H" Z
#include<iostream>

usingnamespace std;

int main()9 Q" Q( R+ J. d( H9 M4 \
{" m( h; C) O" w' N: T7 T" {
map <int, int> m1, m2, m3;) k" {/ g" v) D7 p
map <int,int>::iterator m1_Iter;

m1.insert( pair <int, int>(1, 10 ) );
3 X8 J( N" B% cm1.insert ( pair <int,int> ( 2, 20 ) );; v+ p1 w: I3 g# N
m1.insert ( pair <int,int> ( 3, 30 ) );0 i' z+ m/ f6 t
m2.insert ( pair <int,int> ( 10, 100 ) );
9 B. F+ B9 g3 c/ c4 vm2.insert ( pair <int,int> ( 20, 200 ) );( ]* v! i/ E; J$ J
m3.insert ( pair <int,int> ( 30, 300 ) );

cout << "The original map m1is:";
9 A. [2 S' e1 `$ f- M' k& ^/ B( {for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )( i" d: A7 \; W- L# }. R1 j' \; N
cout << " "<<m1_Iter->second;3 Q  F7 D( Q0 D; z
cout << "."<< endl;

// This isthe member function version of swap1 B+ A" ]4 H7 V; S' b3 I
// m2 is said to be theargument map; m1 the target map9 [  c. a7 d# _! @* j9 e: ?* [
m1.swap( m2);

cout << "Afterswapping with m2, map m1 is:";" b2 b2 d- `! L! S- l3 t
for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )
0 _3 `) b- R! c0 q2 }4 x" ucout << " "<< m1_Iter ->second;0 k- J  r  F  r6 d+ Z. h0 U9 M8 V
cout << "."<< endl;


* F* j! M2 d9 d$ Z, U; ?cout << "After swapping with m2, mapm2 is:";
, ~' M# D4 u; j; `# m# h9 |for ( m1_Iter = m2.begin( ); m1_Iter != m2.end(); m1_Iter++ )3 n! e$ C& ]% I! [3 ~
cout << " "<< m1_Iter ->second;/ Z2 j6 a! }* I# {
cout << "."<< endl;


$ t5 g$ U0 k' U, Z1 E* A. Q' j3 b// This is the specialized template version of swap2 E9 ~7 ?* q+ C
swap( m1, m3 );

cout << "Afterswapping with m3, map m1 is:";0 t, ^4 M' V1 z4 L8 e
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end(); m1_Iter++ )
2 k( K- s6 {5 R, n" A! x- Xcout << " "<< m1_Iter ->second;
7 Y% k$ n# {% Tcout << "."<< endl;0 A( }7 _+ u% @3 z- r
}

6. map的sort问题:/ i5 s. W& b: K# I
Map中的元素是自动按key升序排序,所以不能对map用sort函数:- G$ I+ j% \6 `
For example:7 O1 D3 X# ^, P0 D8 @/ S
#include<map>7 Q4 n. x4 K5 S+ w& e
#include<iostream>

usingnamespace std;

int main( )# e: w* X7 \% Q' B/ H0 J7 ~
{
5 s( e. I6 n; K0 l3 _map<int, int> m1;: o" ~8 {: x3 B% M4 N5 ~' K0 F( r6 \
map <int,int>::iterator m1_Iter;

m1.insert (pair <int, int> (1, 20 ) );0 l5 L! ?8 w5 M; M/ U
m1.insert ( pair<int, int> ( 4, 40) );
8 ~" e$ r  b: U$ M2 ]" p" fm1.insert ( pair<int, int> ( 3, 60) );
+ m" r0 F- ~% {( Sm1.insert ( pair<int, int> ( 2, 50) );8 ?7 [8 d, f8 c9 }
m1.insert ( pair<int, int> ( 6, 40) );
5 v0 ]9 p* g+ f+ O9 ym1.insert ( pair<int, int> ( 7, 30) );

cout<< "The original map m1is:"<<endl;
+ b/ C9 V8 G) J# d% }" d' mfor ( m1_Iter = m1.begin( );m1_Iter != m1.end( ); m1_Iter++ )2 W; s5 f% ~  e) w7 J+ L( K- g
cout << m1_Iter->first<<""<<m1_Iter->second<<endl;* v8 S2 g& p3 M* o/ H2 j

& C8 J& q, S6 C$ D}0 f, S" g# G1 g  j

The original map m1 is:
& t# ^3 \5 F  S0 v& J, L1 20
- p# N# Z: h& J$ C6 x8 j3 j2 50
5 w, J* h; x0 L8 j9 e3 60
: _7 T3 \( X5 y4 40
3 A5 B5 @% f/ G) s8 }6 40" P8 L" ^1 g" m# F6 _& \- U
7 30

7. map的基本操作函数:9 U# O, k) D* x. [! C7 L
C++Maps 是一种关联式容器,包含“关键字/值”对
( j" y4 N" O9 H, t! }" V0 Ybegin() 返回指向map头部的迭代器
4 @+ f2 K" }, d+ X* K) c; Mclear() 删除所有元素
1 {( ]2 S' e1 l- R& [' [count() 返回指定元素出现的次数# {0 I1 ~$ m8 l4 ]
empty() 如果map为空则返回true
  P' r2 T. S" H2 S/ t' L9 e. p7 _end() 返回指向map末尾的迭代器2 X/ m( o2 x$ w) i
equal_range() 返回特殊条目的迭代器对% k/ y4 d( n' Q8 l0 ?
erase() 删除一个元素1 B$ W# J% r/ ^4 ~; a) _% @. ]
find() 查找一个元素
1 z' a% k* W. [# Y7 j: b: Vget_allocator() 返回map的配置器" G; H2 ~/ S3 i
insert() 插入元素
) \0 W( l# e1 H3 rkey_comp() 返回比较元素key的函数
# u8 Q8 u; I- Mlower_bound() 返回键值>=给定元素的第一个位置, R5 m+ q/ R: h  o3 ?3 b' A
max_size() 返回可以容纳的最大元素个数
2 T+ p; \( i( [- g: T: B. xrbegin() 返回一个指向map尾部的逆向迭代器
; h; E# r* E( V. T6 g" h% w8 `rend() 返回一个指向map头部的逆向迭代器
4 \/ T3 \4 W5 `# B$ Asize() 返回map中元素的个数' ]& u9 R7 d1 ]
swap() 交换两个map
$ @5 `' S7 \# ^5 l$ jupper_bound() 返回键值>给定元素的第一个位置
: N- s7 f5 k$ q1 Wvalue_comp() 返回比较元素value的函数

: u( @5 k* `) w, w
该会员没有填写今日想说内容.
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了