查看: 3327|回复: 0

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

[复制链接]

4

主题

3

回帖

44

积分

管理员

积分
44
发表于 2018-4-3 07:56:54 | 显示全部楼层 |阅读模式

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

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

×

$ Z) Z1 E: O* R$ G! \两个vector 去重复,相交,合并的函数分享
. \9 @: \; C- C) [/ x. v2 z6 L; Q
2 O9 y( \" b# t% n- q$ t# H[mw_shl_code=c,true]//容器vector中元素的去重  % F# [- t( l4 n5 e
vector<int> unique_element_in_vector(vector<int> v){  
; B: ]! I+ M; O, H" x% z5 d. x    vector<int>::iterator vector_iterator;  
7 b, s/ U9 b) R2 |: u* C    sort(v.begin(),v.end());  $ v6 G+ e$ p" k$ E
    vector_iterator = unique(v.begin(),v.end());  ( f6 q' u( n, M  `* V; W+ i9 o8 T* ]
    if(vector_iterator != v.end()){  - _/ x2 ~; }9 S5 Y/ m# X* [
        v.erase(vector_iterator,v.end());  
0 x0 D; o" x+ ?) p% U    }  
8 ?  y9 U3 M5 ~$ G; L5 B/ H# e    return v;  
; f3 N# g" t. A* d0 N}  
/ G# }  z& J2 c% X& g  ( H% |( b5 W" A) X
//两个vector求交集  ' ^1 l1 v* X! p! S# s: u7 J' t. C
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  - W; ]( s) V) H5 A
    vector<int> v;  
. z/ _4 m6 x; c' Y    sort(v1.begin(),v1.end());     
+ c6 s, V9 U+ F0 ?( t+ m    sort(v2.begin(),v2.end());     
; p# D/ S4 t  v  |$ [    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
7 G, ~' ~3 S5 y: o; h    return v;  : S, h2 B3 p, B  j1 T. q: c- @
}  * C: e3 ~% y6 f9 s  P$ P: L, `* l
  6 H, S  }2 ?: U. U1 O# Z, z
//两个vector求并集  . i" h4 o2 v% f) \: }3 s: L
vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  9 I: P7 ]* r) h$ J# N
    vector<int> v;    f" `0 S' H* P/ B
    sort(v1.begin(),v1.end());     8 r% c  D0 ?: b3 ~# }
    sort(v2.begin(),v2.end());     3 X' }# T5 {1 a1 z8 h7 X$ N: }
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   . T2 s2 v& Y7 n
    return v;  
# \3 k7 c! n5 b4 I}  
9 r8 }8 [, n  N6 f8 b3 Z* [/ r  
$ k1 q2 A7 G! {8 T//判断vector的某一元素是否存在  5 O- g7 V) a3 g
bool is_element_in_vector(vector<int> v,int element){  1 l, a# R# }" Z3 ?. N
    vector<int>::iterator it;  
: |& ~, A: `5 A  A/ @    it=find(v.begin(),v.end(),element);  ! |; A& b- k# T/ F6 h8 @
    if (it!=v.end()){  7 f/ r; x& v0 q5 L+ A$ D
        return true;  ) z% `5 B$ J! M) i6 ~7 }% u5 |
    }  5 I6 ?" ^: U( p; D4 }+ R! Y, x# i
    else{  
# [/ N; i4 e( b( x7 s3 s8 a/ @1 l        return false;  6 P1 Z. q# Y6 i1 \5 Z
    }  9 t$ N3 G# P+ y8 M
}  6 H( n, v2 q: g, R
  [/mw_shl_code]
, @& q5 x" `6 G0 L4 V- ?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部