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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x

3 ~, Q7 X" a- E( P. d两个vector 去重复,相交,合并的函数分享1 c( n8 b  \5 g% E" ]# |. h% \# |! v+ i
$ |' @, D/ ~; `
[mw_shl_code=c,true]//容器vector中元素的去重  & J* \- K- J+ X( G; D( c% B
vector<int> unique_element_in_vector(vector<int> v){  + w' z5 F  {. {
    vector<int>::iterator vector_iterator;  4 L7 n: g# Z1 R  F+ @' C
    sort(v.begin(),v.end());  
  C5 a5 [- V5 m    vector_iterator = unique(v.begin(),v.end());  
/ Y/ w. K9 D# R% k- ^3 e    if(vector_iterator != v.end()){  
, B( x1 a& I( T7 @6 B0 h6 c        v.erase(vector_iterator,v.end());  
% g5 c: C8 v3 i5 G7 s0 X    }  
3 _  n) H- [( [% W5 }+ e    return v;  
& A  R( D- m+ E$ T}  
) A/ I$ S, H8 p( k4 o, O  
+ U' M0 n( V  f4 [2 X6 w//两个vector求交集  % |& I$ q' ]+ H# u# J# j7 o" u
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  
* T3 u7 r. q" K    vector<int> v;  7 C! M8 g8 H9 q/ e
    sort(v1.begin(),v1.end());     # v6 D* y$ b1 M
    sort(v2.begin(),v2.end());     
! p" q! J& O1 |- }    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   : p0 N5 M; S% h' ]+ `5 p
    return v;  
/ W4 W, q: V( V2 ^4 R9 d5 _}  : ~0 p5 V8 X/ Z# n. M/ G. }+ G
  5 P2 `9 h. k! G2 _
//两个vector求并集  
* y# L" A6 ~$ z! r2 Uvector<int> vectors_set_union(vector<int> v1,vector<int> v2){  
6 M6 p* S0 n- _$ a- i    vector<int> v;  0 X& x9 u6 i' M; |
    sort(v1.begin(),v1.end());     
8 v  ^; a9 q/ O0 W    sort(v2.begin(),v2.end());     $ }) G/ j$ ^3 J$ n; o2 a
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
5 Z; X; G! f9 S' E# k) b    return v;  2 e7 ^1 _% y1 `
}  
7 }  }( K2 v2 i8 _  
5 ^: V$ B( V, o$ J$ O9 E( Z//判断vector的某一元素是否存在  
9 N) }) a6 n% }' R" Obool is_element_in_vector(vector<int> v,int element){  $ R$ P) {/ ]8 M/ [6 n
    vector<int>::iterator it;    [+ L; f2 |* q# V5 ~) u
    it=find(v.begin(),v.end(),element);  2 B+ N6 {% h/ _3 f
    if (it!=v.end()){  * @  O6 T; ^8 m% n
        return true;  
! R0 H0 p! g& q7 a    }  8 A' q" _/ h2 i/ P, f! h% q4 J
    else{  
2 j0 m. ^1 y) v' E" C1 J. D        return false;  # ?/ w$ m* h6 I5 k) y
    }  8 \! i/ ~6 v+ @9 `6 ~
}  4 v) {4 b% M- M
  [/mw_shl_code]
( C8 R( o( Y% I) V8 m# X2 ?5 Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了