PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x

0 `% b6 t* g9 N9 ~9 M0 E: ^5 }9 W两个vector 去重复,相交,合并的函数分享7 h9 p' m* n, l, p8 C5 z& B! G
5 j& [- e, A! `# `
[mw_shl_code=c,true]//容器vector中元素的去重  % v3 h3 }" j" q' q. N
vector<int> unique_element_in_vector(vector<int> v){  * K; z6 h4 J( l& \* K! G
    vector<int>::iterator vector_iterator;  ) y7 _- @# V1 n3 S0 r1 j2 u
    sort(v.begin(),v.end());  
( s8 g5 Q9 e  B0 O4 G    vector_iterator = unique(v.begin(),v.end());  . C1 A# y# j7 {, g
    if(vector_iterator != v.end()){  
; Z' s. e" U2 E' s8 D. v$ j$ Q5 k/ M+ i        v.erase(vector_iterator,v.end());  
7 T# U+ O- c. D' n    }  4 n2 j* n7 S, k. b! @& e2 W% c" M6 L
    return v;  
8 M( ^; `" g8 U6 b$ W}  " s5 n' G5 _( r% u# [
  
- b; T! P. G+ E5 ~8 D  R//两个vector求交集  
( n5 {5 Q' w0 j$ ?% G9 o: qvector<int> vectors_intersection(vector<int> v1,vector<int> v2){  
+ y7 N) g: s' f# c+ a5 W4 h    vector<int> v;    i( c8 Z. I% i7 s
    sort(v1.begin(),v1.end());     & u9 `. f- d+ [& w3 t
    sort(v2.begin(),v2.end());     
( J1 [- l$ m  j    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
% N8 q  ]! [- u    return v;  
& u. T. Q6 W+ _$ ]" m8 K}  9 B' G( v& S: ]( A' a8 |1 ~$ j, m5 v
  $ A- \3 s1 T' P: ?$ w6 q$ i3 @8 M
//两个vector求并集  
, Q' J' t- c- y  q* R( ^vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  7 E" @: e: u9 r. B1 y) H! m2 w
    vector<int> v;  % Q; x; B) @+ F6 s! r
    sort(v1.begin(),v1.end());     4 ?3 W4 w& q! ^3 E  a3 A
    sort(v2.begin(),v2.end());     8 F- A) n7 ]$ z
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
+ S5 D4 f9 ?/ g+ j( A    return v;  ' q& Y" Y, j1 @* A+ i6 y4 y0 n
}  9 @2 Y. Q6 t$ x$ b0 g# X. q
  + x% r0 e: Q! i# J3 G
//判断vector的某一元素是否存在  ! Y" \, C3 B' \$ W. _
bool is_element_in_vector(vector<int> v,int element){  , C& ]' @9 A# b8 f' D) K
    vector<int>::iterator it;  
3 }( e+ M; o: L9 }- R4 C- k! g" |    it=find(v.begin(),v.end(),element);  
% [- l" E/ Y! B" Y    if (it!=v.end()){  
& ?; j1 O' ?0 l        return true;  8 \. O: c5 N% l# ^; v. Y; T8 O& w
    }  $ E) a5 T( K# w3 d% R
    else{  . C$ A  b$ D9 a3 L
        return false;  
1 p( C" O9 W2 H0 g# a9 q  I0 b# H    }  ; X/ f$ ^- Y: c
}  , S9 X. A8 }$ l; R; h. ~" r! V
  [/mw_shl_code]
1 ]3 D' m1 [# u* r4 P9 [# d2 q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了