PLM之家PLMHome-工业软件与AI结合践行者

[资料分享] 两个vector 去重复,相交,合并的函数分享

[复制链接]

2018-4-3 07:56:54 3218 0

admin 发表于 2018-4-3 07:56:54 |阅读模式

admin 楼主

2018-4-3 07:56:54

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

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

x

# D1 R$ Y6 q$ i& k5 l; c# s4 Y% r两个vector 去重复,相交,合并的函数分享
' \; B( W' j7 a! C0 a; ^8 {/ n3 u0 B0 A7 d) e6 i0 E
[mw_shl_code=c,true]//容器vector中元素的去重  ' `- p0 l* ?. e/ |8 o, T4 o
vector<int> unique_element_in_vector(vector<int> v){  
9 n5 _. \5 C1 |: E9 U/ U- m    vector<int>::iterator vector_iterator;  5 J3 l7 v5 F$ h) ?6 g
    sort(v.begin(),v.end());  ) V9 V1 u# O7 S/ f4 U
    vector_iterator = unique(v.begin(),v.end());  
, O4 B, d/ ?' Q0 H8 Z. W    if(vector_iterator != v.end()){    t' x1 @9 e$ d0 n* r
        v.erase(vector_iterator,v.end());  
5 \1 z/ G. `2 z! r: K% H0 J    }  
7 E7 N1 V# h& r! {1 m1 N    return v;  
1 ?. l8 R. C9 D: k}  
! b: @: p' y5 k  M) H% i  9 R$ R9 ~3 _! \) ~# R
//两个vector求交集  
, N$ J( M: J" avector<int> vectors_intersection(vector<int> v1,vector<int> v2){  ' v+ K$ n  b* n+ v" I
    vector<int> v;  
" b7 {% l* j8 ~5 G4 j* L    sort(v1.begin(),v1.end());     
" B+ B* w8 C. @6 ~; c9 s, |    sort(v2.begin(),v2.end());     
  `% }6 R" y9 ]  B3 T3 L: M( ^    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
$ Y! ]- |6 y4 @; S    return v;  
0 O2 ?# ]; m" L}  ; u+ D, p  z% z' C. x9 f1 @  U
  
& _- g: C7 F% P//两个vector求并集  
8 Z( C) m' R2 l/ evector<int> vectors_set_union(vector<int> v1,vector<int> v2){  % B" W- \" T$ _6 ~+ x) E  X
    vector<int> v;  
/ e" o! \; |, q; c6 Z2 T- {0 L    sort(v1.begin(),v1.end());     
/ _1 n( w) j6 ?2 k9 p    sort(v2.begin(),v2.end());     $ G' t. m8 P9 a" k2 A
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
5 c* J' s% H( ^. K/ y5 U    return v;  
1 a& ?% z2 k4 v. s/ N: x. ?6 _/ t}  : ?: }5 I0 t1 b( s. C4 v8 d0 l
  
0 s  V+ \' s3 h# }) j//判断vector的某一元素是否存在  
& A7 p+ @& u* ]) A" l4 Obool is_element_in_vector(vector<int> v,int element){  , P5 Y. X: C2 p3 w( T! A
    vector<int>::iterator it;  4 S0 m8 t" X$ h6 q0 p
    it=find(v.begin(),v.end(),element);  % I' ^3 J" P" |8 ~5 W: Y$ o; S* C8 j
    if (it!=v.end()){  
9 c4 d0 |) m5 _5 n        return true;  
7 _6 p8 \& A3 E- }% K: o! b! S% L; X    }  
1 @$ x7 B, x" k* F+ U    else{  
% r/ F; E6 w* d' ]$ s. s        return false;  
  v! o+ N5 }6 j8 ~' |& f    }  # F. q  k& q! X( P
}  ) a% n8 e" l9 ^; j, h- ]( |
  [/mw_shl_code]0 w3 \+ F6 B2 ^$ @* A, x
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了