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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x
& T6 S. H/ A# ~6 D- b* J
两个vector 去重复,相交,合并的函数分享+ _. C; l4 \! x% C# q! ^1 ~

2 S" R- }0 O& h7 z3 l' |, }* R! H[mw_shl_code=c,true]//容器vector中元素的去重  
: j! p9 t8 T% Q" {vector<int> unique_element_in_vector(vector<int> v){  ( f0 T+ t/ y! z
    vector<int>::iterator vector_iterator;  % Y+ H. e2 c" o" p
    sort(v.begin(),v.end());    Y" m. ~5 w6 U4 P' d
    vector_iterator = unique(v.begin(),v.end());  0 M3 b9 k0 [/ ~% \) ?: c) v
    if(vector_iterator != v.end()){  
  G* a- s7 B8 @8 W* ]% k: D        v.erase(vector_iterator,v.end());  
( n0 f- |' Y: ~# _9 \5 |5 p  I, Y' G    }  ' |3 h# E4 h+ j& }9 |
    return v;  5 o$ d$ t. ]0 o/ I( u
}  
# U3 @5 w, r2 T% X) H7 k  
/ l1 E& W4 e7 E; {- K//两个vector求交集  
6 V. s9 ]' P7 P" W+ X& g! [+ ?: @vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  & ~* g, r1 ?7 P) L. b
    vector<int> v;  
( Q- S( X9 \+ R; e4 p! x    sort(v1.begin(),v1.end());     % z2 K4 T3 `" }. I$ i. S$ W
    sort(v2.begin(),v2.end());     
, L, ^% W: j" d. y/ _0 G/ b1 o    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
2 C" c2 a0 X9 {. f' [/ q    return v;  4 b) J8 `: V" _; Q# g6 v9 S+ s" M
}  
2 D; L! M" Q1 E) j- A* D5 {5 E- v  7 M6 F& k8 ~+ z5 g. x
//两个vector求并集  - _0 c3 H( r' s3 {
vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  " V8 a+ V7 h% X' M" `9 r+ B) Y6 S
    vector<int> v;  # B- _2 t; K$ ?/ W4 Z
    sort(v1.begin(),v1.end());     ( m! D6 `/ r" Z4 B& Q
    sort(v2.begin(),v2.end());       A3 R0 x- w8 d: }7 }! P
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
2 k2 z5 N8 b- k4 I$ z    return v;  
6 e% K8 H- \! {& W! I* p}  
8 ]& u; n0 z  H8 r( O  
6 p- w6 i' A- p4 K9 u9 s4 C//判断vector的某一元素是否存在  / u" T$ a; C6 \2 ]
bool is_element_in_vector(vector<int> v,int element){  
. c& p0 R* R1 n) L. A- k1 x# D& J    vector<int>::iterator it;  + _9 r0 P& z0 c
    it=find(v.begin(),v.end(),element);  
( g, a/ }+ f1 L& d/ I% j    if (it!=v.end()){  
2 r  Z3 }" K2 \2 c/ C" ?) w        return true;  
' O+ R  j- S3 C% I4 V; e( |9 j: Z( B    }  6 [* t! t- f& A
    else{  
( _  h, D. V* L        return false;  
' d. s0 h' F+ Q* J2 E7 f    }  
3 q1 S6 N$ [: {9 g- c5 w/ M3 ?; T}  
" u9 o4 q) n( y  [/mw_shl_code]
6 l, \* D: b9 m: D6 Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了