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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x
  D, T& I) `6 |+ j! V0 E
两个vector 去重复,相交,合并的函数分享8 I3 v# g) H* q$ _' ?$ l4 s# b
% u: Z* L' L3 o1 ~/ ~
[mw_shl_code=c,true]//容器vector中元素的去重  ( e9 n; u8 I. o( j, D+ b1 S
vector<int> unique_element_in_vector(vector<int> v){  
- y1 \/ A1 g2 g2 A    vector<int>::iterator vector_iterator;  - E3 V- [5 F$ g* t
    sort(v.begin(),v.end());  7 ]3 }- _. L$ q  F: N# x% ^
    vector_iterator = unique(v.begin(),v.end());  
/ T( s) ^* T  z+ x" T# D/ m' @    if(vector_iterator != v.end()){    ?6 {1 y  V" r0 O3 u. w' s& M
        v.erase(vector_iterator,v.end());  
/ O- o9 R4 c$ t. J# M. @5 u; H    }  & F8 \# a  q4 m. k- U
    return v;  : Q8 a, L0 z, f/ J$ N# _1 z0 W4 r
}  
4 G! B4 }' y9 h' w  
# |+ O2 j9 U( R  j/ A//两个vector求交集  8 S9 ?/ a- W! b# o1 L+ e  o7 p
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  
$ C* V, \, u( D' L5 p    vector<int> v;    o. ?) x+ P* e8 ~
    sort(v1.begin(),v1.end());     : p2 o2 b' N/ m. H% P" ?1 x
    sort(v2.begin(),v2.end());     0 m& q+ n% y( r( r# K' j
    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   , O$ u8 l4 u6 s: _. W" L% ~' O& b9 T0 \
    return v;  
& a/ S. `* j- h; Y7 |}    ]. t7 d1 e( i; C/ O: D
  5 o, r/ G: {6 U0 y, Q9 Y
//两个vector求并集  " J2 K2 w( W0 M/ T( }* J0 ~
vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  
% u' l; r6 y3 h    vector<int> v;  
0 V! O( m( F( m7 O    sort(v1.begin(),v1.end());     
0 x* h. ?3 @4 A6 T    sort(v2.begin(),v2.end());     ( {- m, t6 @: l( t, s3 w
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   ' y$ Y/ y- u$ S% `
    return v;  ( y5 C2 e; S! X7 B- q8 z1 T- ?- e* d
}  / ^9 s* I5 u8 z4 i; Z
  
0 w4 B" B( c1 F. ~//判断vector的某一元素是否存在  * S' G- z' \9 q! [. ^
bool is_element_in_vector(vector<int> v,int element){  & Z" B( N+ |' r7 N& ^, Q; s) _8 E1 @
    vector<int>::iterator it;  
  _9 Q4 B& c8 N3 n# Z% T    it=find(v.begin(),v.end(),element);  0 F& |) f/ C9 F8 T5 v
    if (it!=v.end()){  3 L7 _0 n3 d/ E
        return true;  + K) D3 N& ^( L1 T0 B$ I- I
    }  0 b: U# Q6 I' t8 V) l; {
    else{  7 h0 v$ M- k/ t- b  r7 ]
        return false;  
1 H+ J6 x0 A: }' _- m1 |    }  % R( U1 Y1 h- D8 P$ F7 l) w/ Y0 K
}  3 S1 b( |3 @2 Q
  [/mw_shl_code]3 X, x1 ~/ u1 r! T. Z  j5 ^% C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了