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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x

  s/ t* E+ v  `* g6 z两个vector 去重复,相交,合并的函数分享' s, R0 ]( l  p, e6 \: R/ V. q

2 Q' i! c4 n3 r[mw_shl_code=c,true]//容器vector中元素的去重  
; b% O' \- ^# T5 s. O" @vector<int> unique_element_in_vector(vector<int> v){  
  L  s: t, I7 S7 u/ b7 N4 q$ ^+ h    vector<int>::iterator vector_iterator;  
3 y1 V* t) v: m% ^# p% C4 s$ \$ J    sort(v.begin(),v.end());  
  m* J+ }  P$ Q3 d    vector_iterator = unique(v.begin(),v.end());  
( ]3 n8 `1 R- I    if(vector_iterator != v.end()){  4 C/ ?/ J* g- A( u" O
        v.erase(vector_iterator,v.end());  
' s9 C$ }) I) R8 o; a' P) [    }    p$ |% B& ^; \0 M- n
    return v;  
  [8 _+ l8 P* v/ U: ~2 r3 I}  
# I/ O; z; \$ g$ ]4 v& B  7 Y3 j6 D' _% K+ O" ^' ~
//两个vector求交集  
: S) K$ b( P# U* Y$ e5 ~' X+ [vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  
9 Z. J# i+ G# ?' d5 |" n    vector<int> v;  
3 b0 M# p! D4 B2 y    sort(v1.begin(),v1.end());     
/ z! c7 @  Q) Q/ H1 Q8 C    sort(v2.begin(),v2.end());     
6 Z+ i0 ~0 I& T9 W! T) ~    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
5 z2 v7 y0 q' [) @    return v;  / `* i3 ?) T+ d* X8 I
}  
4 ]" r* {9 j% z0 m; n8 F7 a* ]  ( G: L9 o0 Q4 d8 [- E. R8 i4 T" Q
//两个vector求并集  
* f2 ~4 i0 L$ Z1 d0 y4 cvector<int> vectors_set_union(vector<int> v1,vector<int> v2){    k/ Y3 u- d2 s' B, |/ ^3 e
    vector<int> v;  $ H* R1 I6 b/ Z7 p
    sort(v1.begin(),v1.end());     $ f4 x/ w8 s" y6 W4 u# ?9 `) }4 |* C
    sort(v2.begin(),v2.end());     
5 \# m# ]  N3 C    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
- w5 Q, b8 T( e, c    return v;  
7 q# c2 X- [( C! V' w}  
  k  T' D6 r1 ~/ r. h  # a8 V! d5 ]2 r$ ?) S
//判断vector的某一元素是否存在  ' g4 l( O% ^+ K
bool is_element_in_vector(vector<int> v,int element){  / \. x. b# ^& H# r/ s
    vector<int>::iterator it;  8 M) s: b8 Z* R8 v% E" u2 S
    it=find(v.begin(),v.end(),element);  . h) K+ ?5 X6 A1 P6 ]; I
    if (it!=v.end()){  5 M- ^, x% J) E1 H
        return true;    F" J3 o( F. S( K: M
    }  
% D; [/ x% ^; C; ?    else{  , b3 l; Z8 l6 h0 s- _# y
        return false;  # J5 Y( N) U* H: k7 }  O" M: v
    }  
* a. L8 l! ?/ g2 l" N}  
* W; Z, f. j! g( v; w9 J3 x  [/mw_shl_code]
6 e' I  X, {+ _/ M0 p# r/ ?+ x. K0 O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了