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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x

; e$ ]& X# E, ?3 N* j7 x1 Y两个vector 去重复,相交,合并的函数分享( N# o0 Z% g/ ?  m2 X- {
' L" k' t  L+ z* _* p+ t% v/ L# Z
[mw_shl_code=c,true]//容器vector中元素的去重  
% @6 v& s  j$ I3 X9 s  Jvector<int> unique_element_in_vector(vector<int> v){  
2 x; e8 c' ~- C4 w/ U6 ?# G9 i    vector<int>::iterator vector_iterator;  $ e4 [1 W3 g; w9 ~
    sort(v.begin(),v.end());  
" u5 M# {9 ^0 ]- V( J1 [) ~    vector_iterator = unique(v.begin(),v.end());  
" a/ A: e" W, n$ a    if(vector_iterator != v.end()){  8 @: w% e, }0 T, x
        v.erase(vector_iterator,v.end());  
% Y: H# A, Y" ~2 D0 \: f% p    }  
8 L% H- D& d$ y) d    return v;  - W2 v2 j1 z# M/ k! n
}  
  \& o8 L# X! C  F) ~- N" r3 r  ! M& j9 i; }0 c# b. u
//两个vector求交集  
4 }! O" \2 O  t8 F7 r. fvector<int> vectors_intersection(vector<int> v1,vector<int> v2){  
) M! K  k" {2 S    vector<int> v;  
7 h5 P: o. `/ C  l6 y( u  t    sort(v1.begin(),v1.end());     
. f7 e' e) w( S    sort(v2.begin(),v2.end());     
9 Q# T) r! j7 k4 q/ t    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
  E5 K) ?- c0 x3 I    return v;  ' ?/ a% K' o* C& o! n  Y6 K
}  
2 j- `1 d" N- u. r1 T) ^$ v  * ?/ n. M7 y( k% f
//两个vector求并集  . Q2 i* ~" G1 r1 ~9 J: H
vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  
! K0 a* Q: W/ p) e    vector<int> v;  9 @0 q4 {* D& M' p0 v2 |
    sort(v1.begin(),v1.end());     
0 L% D7 R& k2 x$ O/ G    sort(v2.begin(),v2.end());       I1 i. J" U' P- T2 [/ b$ J8 H
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集     H& m5 `3 X9 l+ q# M3 w9 b
    return v;  $ H4 B+ r* K/ `& n  T8 i; K  c+ L; f8 {
}  7 s3 i) x' p  l
  
: V% |& m# N  a//判断vector的某一元素是否存在  ) v5 }6 v" p0 j$ R& @
bool is_element_in_vector(vector<int> v,int element){  
1 |' h$ q" w. l8 ]    vector<int>::iterator it;  
# b5 v" l6 S4 f% s    it=find(v.begin(),v.end(),element);  6 [9 V  ?$ H7 w7 a
    if (it!=v.end()){  
+ j: A2 n$ ~: i$ u        return true;  4 y( Y: m3 W6 _: S
    }  " V" p6 K+ a" F& N* q
    else{  
, D9 D* v- N( o- x- L# h        return false;  
3 ?# e& ?; O1 Y; y) V; Y& [. q% Q. [  V    }  2 S0 V% X7 O3 C9 L. E+ `
}  ! Z6 B# Y4 G/ k4 C% G% F/ ]
  [/mw_shl_code]/ K3 o" X( L$ C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了