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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x

% k% B3 U5 U+ K' |! P# t! R: t/ C$ ~两个vector 去重复,相交,合并的函数分享
1 k' c# D, S- `
( D, s; ]' P  n( g; H' ][mw_shl_code=c,true]//容器vector中元素的去重  
9 c6 p- a' x, A: j2 n: }vector<int> unique_element_in_vector(vector<int> v){  
( J4 g, j6 I9 Q: i4 _    vector<int>::iterator vector_iterator;  / o. z& |- R/ k8 \4 R
    sort(v.begin(),v.end());  
: \6 _% C+ ]7 p    vector_iterator = unique(v.begin(),v.end());  3 C, r. k, N( k
    if(vector_iterator != v.end()){  
! y1 X, K" x* j0 z" d0 v& q; i        v.erase(vector_iterator,v.end());  9 i$ J  }' s7 B- B
    }  
: r8 y; w3 S4 ~$ I% J: h* P    return v;  ! o5 K7 G" L/ S0 {9 N- y% r1 o
}  
2 ]; f4 M* X& V' Q7 g, R3 L  
. D9 _/ X6 f1 u, f; t6 a4 E//两个vector求交集  ) r3 q" D, t& s; z! y
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  
/ U2 I, s6 \7 g* G    vector<int> v;  
4 M% M3 ~$ N. `- `9 i    sort(v1.begin(),v1.end());     " Y  v  U; W0 \  ^8 B2 S( f8 Q# h
    sort(v2.begin(),v2.end());     + ?, `+ ~& V" B& {* J' j  o1 M
    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
0 V  `6 g+ c0 n6 D    return v;  
9 p4 P* ^) g+ s/ D+ k6 X}  6 V4 V3 o5 z: B+ {  g
  & u' |6 L$ i' O  q- y
//两个vector求并集  + n% Y1 ^3 B9 G3 o) T
vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  
! w& {$ t3 l  _8 L  ?    vector<int> v;  
4 g* L: ]! o7 T5 a8 `    sort(v1.begin(),v1.end());     $ T  u7 R7 c# J+ F0 `( j6 i
    sort(v2.begin(),v2.end());     
2 Z2 U2 R* N- n5 E( ]. R! a0 l, o    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
& Q2 o! X/ G( Z9 W& D! H4 j; h    return v;  ! b6 T, U, I: K! T( m
}  ) N* w' Q: ?' }1 Y4 V
  
; n" c% \: _* ?$ g+ h0 {* i  [//判断vector的某一元素是否存在  7 Q. C9 F6 `9 b; @2 D
bool is_element_in_vector(vector<int> v,int element){  
/ L/ ]8 u! X9 p% L/ f    vector<int>::iterator it;  7 f4 ^6 A  Y+ I( j6 Y
    it=find(v.begin(),v.end(),element);  3 c* {% F) p: u0 K) h  |
    if (it!=v.end()){  
& I# p2 a, H7 u2 ]        return true;  
/ s( O: X2 Z3 w8 }+ W    }  6 I$ C* U3 `( [# _, l" b! Z- h
    else{  
+ S/ Q; \8 J& T! m& @        return false;  
$ @+ n! p3 B, ]" A) T2 Q    }  ( ~; o! K3 }4 {% \  ]
}  $ s) K5 ]0 J, {" c
  [/mw_shl_code]
/ Y1 @, g# n# q2 n% m6 {
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了