查看: 3313|回复: 0

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

[复制链接]

4

主题

3

回帖

38

积分

管理员

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

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

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

×

% Y* Z9 l7 E# |* y9 t- w两个vector 去重复,相交,合并的函数分享# u9 x. N/ _% q# I" C8 T9 E+ h

$ f3 s& _5 C! G9 Y[mw_shl_code=c,true]//容器vector中元素的去重  
" N  ^, v3 u, ~( L! tvector<int> unique_element_in_vector(vector<int> v){  7 }  L1 Y8 _2 J  @8 ]' O: t
    vector<int>::iterator vector_iterator;  
  V7 J0 x& a6 V    sort(v.begin(),v.end());  
+ \2 j' G1 z' W4 ~4 V6 P    vector_iterator = unique(v.begin(),v.end());  
1 n  f# Y. o2 d+ H1 o/ Z1 Q    if(vector_iterator != v.end()){  6 I7 l& m/ O) A
        v.erase(vector_iterator,v.end());  % H6 a2 }, l) `, O7 e$ I1 l
    }  
: [8 q  T* ^! P    return v;  ; f% z% [8 b! C' ~" f: g5 D# ^
}  
5 o3 Z. ]; O4 O6 X' T    E4 N+ N: F3 \; _
//两个vector求交集  * x9 U5 |2 ^: c# S) H/ d' R# u
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  * K. X1 E" _" D% U
    vector<int> v;  
0 [0 l1 J( b  V# h    sort(v1.begin(),v1.end());     
, [% P4 @8 L& B2 Y. j  ?4 W    sort(v2.begin(),v2.end());     ) I4 t) I' J# V; v; j" }
    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   5 W" Y2 Q6 e& h: M; B& q3 B
    return v;  4 M2 f: v# _6 |0 Z2 `# S
}  3 a5 r: p, D" E9 e3 l3 U8 V
  # C6 {" D' t( t  u" s
//两个vector求并集  
6 b! v. K  |0 m. F  M# lvector<int> vectors_set_union(vector<int> v1,vector<int> v2){  
7 P" ^: j; E# i3 t7 J    vector<int> v;  
  N/ q/ o8 E. y& W! {. m# ?    sort(v1.begin(),v1.end());     0 h% w# ?! ~' M& @; W
    sort(v2.begin(),v2.end());     
, E( }. ~- x6 \; y+ a5 d    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
# R( m% `$ }5 R+ _    return v;  ) C% s& R9 d& c2 b8 k; `! ?2 B$ ~
}  
, F" u9 M  M5 r4 q6 ^  . E$ M* Y% S# N% U. Q, ~
//判断vector的某一元素是否存在  6 m4 V) W- C5 X" z" B1 `) P! d
bool is_element_in_vector(vector<int> v,int element){  
- z* J; Q9 N5 Y3 H/ R    vector<int>::iterator it;  
) ^) ?9 G1 U, H6 k5 Q    it=find(v.begin(),v.end(),element);  3 I  w# y3 l2 M" z
    if (it!=v.end()){  
; m7 G; H* Q/ z) F        return true;  
' R2 O2 S9 S5 [& u" M( L2 \  V    }  
8 [9 ?/ L( a# w6 W, w5 k( O/ N    else{  ' s6 ?/ g5 z8 ?7 e; \: Z, \
        return false;  
& c5 ~! ~1 p* S- c$ P    }  % @: ~/ L' S( S7 J; g6 f
}  
+ m1 o4 P  {; `3 l) W  [/mw_shl_code]8 l6 o& {" l$ d$ T7 K' l# \
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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