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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x
7 g4 o) D) D$ ]' }5 w
两个vector 去重复,相交,合并的函数分享
0 c$ b+ y; v5 ~$ r$ e. f5 y( K: r9 U" K8 f5 S* `
[mw_shl_code=c,true]//容器vector中元素的去重  # @+ L, s' \) ~6 |( g- n
vector<int> unique_element_in_vector(vector<int> v){  3 I* k& j1 e; z+ @1 P
    vector<int>::iterator vector_iterator;  8 s' x* b2 N, T$ o  \8 M& d/ D9 j
    sort(v.begin(),v.end());  ; H/ e% Z0 G' X  U' v3 |0 y
    vector_iterator = unique(v.begin(),v.end());  
9 M) w# b4 f* b4 W& b    if(vector_iterator != v.end()){  
$ @1 a5 |: t0 a9 Z; i        v.erase(vector_iterator,v.end());  
# T& z% Q  O8 C2 y2 {5 [7 @% D    }  
2 T1 U% A- N1 V9 f$ c0 u. }2 y8 f    return v;  4 A8 I% D& G$ l, Q4 w* I) A/ ~
}  5 C) c8 S- U8 t5 E
  ' G! n8 A4 ?6 R$ M
//两个vector求交集  
/ D- F- W, n) k7 @vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  $ \3 k. {* A8 ], a
    vector<int> v;  
" T5 J- ]9 H, G( |7 `    sort(v1.begin(),v1.end());     
& p# N# E6 T2 N) Q7 C3 F7 P; U; D' B    sort(v2.begin(),v2.end());     - i7 x% x- \0 J; s1 J& T+ F- v( M
    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   3 G5 z1 `9 g. q% k" T
    return v;    P" e  c0 `& e
}  " z: K: [5 @; G: V' ?
  & {6 G% ]7 q  ~; S  J6 s
//两个vector求并集  
% {7 k5 j- T1 h- Vvector<int> vectors_set_union(vector<int> v1,vector<int> v2){  : u2 T% r) s- Z( V; B# n# |. t/ |
    vector<int> v;  6 C  n, u; i& P- y0 R" o7 m7 T+ q- U
    sort(v1.begin(),v1.end());     
% L! W* |1 L  {1 q    sort(v2.begin(),v2.end());     
8 {& I% w( F9 ~2 x5 Q    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
1 C: X$ C$ t4 Y% b0 ~2 J    return v;  
4 _( l5 D4 o; H4 K}  3 e1 o3 j0 Z  V# i5 \" r
  
; x6 ]0 E, t) T. ]; h3 l//判断vector的某一元素是否存在  ) r7 T6 s' u1 d
bool is_element_in_vector(vector<int> v,int element){  4 {: s9 m  [: Q
    vector<int>::iterator it;  
5 I& }' U& {1 l2 [# ]  C9 ^    it=find(v.begin(),v.end(),element);  ! z: B) O' t* k
    if (it!=v.end()){  
$ G% j- w8 j1 R: e* R        return true;  
: v4 {0 W% I# s/ n. A, B    }  ) C/ W5 [( Y& B" [( k* r6 j9 ^
    else{  
; k7 g' B6 Y* [( O# {- t        return false;  
' x% A3 e- {: ]9 |% X    }  
. C4 {* Y3 v: W3 z1 G  l' a}  0 J* j8 g( L* G* J0 a; a
  [/mw_shl_code]# q& p+ P% a% D: y: p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了