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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x
) E+ J7 ~1 }0 C8 m4 K' V( r3 l
两个vector 去重复,相交,合并的函数分享
1 @& |+ A; S$ C) N$ Q
8 P* R% w% {6 Y. {[mw_shl_code=c,true]//容器vector中元素的去重  
8 x8 N1 o5 I6 e* nvector<int> unique_element_in_vector(vector<int> v){  
+ r1 ~7 S8 `* c' _. y$ f" G    vector<int>::iterator vector_iterator;  8 K8 i  |* B. Y+ u" U& l
    sort(v.begin(),v.end());  
' P2 y+ e$ N4 [. R4 P$ b( T& c    vector_iterator = unique(v.begin(),v.end());  5 X1 r& C# F1 W1 J1 q
    if(vector_iterator != v.end()){  
2 I4 f8 o5 T* f8 e# ~        v.erase(vector_iterator,v.end());  0 {; b' e" A( L6 ?. N% Q
    }  9 w+ q" L$ w- I% p$ ^
    return v;  
1 m: d( x; m( S6 Q( p}  9 w9 J0 V( g$ H
  8 A7 e9 W6 \' I3 w
//两个vector求交集  
5 x, G8 V2 c% g' I6 ?3 ]vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  2 B- B- I3 D* l& D1 \1 \+ O6 e
    vector<int> v;  
/ d# n& Q$ ?. q) L4 H' k" @    sort(v1.begin(),v1.end());     
* T/ c1 ?- U, b/ f! u    sort(v2.begin(),v2.end());     
1 c) D* ]9 c1 w7 W0 v    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   ) |; W& k3 O" {- N
    return v;  2 U* e( W8 R1 N
}  / C5 a- U5 U9 f& P4 l' n
  % k1 A, e2 T. q8 S; L. R- R4 l0 ^
//两个vector求并集  3 Q" j5 ?2 G+ k- x4 F, v
vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  
/ ]8 r% x) A7 w    vector<int> v;  
; O. e7 I! t4 `    sort(v1.begin(),v1.end());     
/ g; m' \( L8 \( l' o1 n* M    sort(v2.begin(),v2.end());     
; I( T; P* X) ]+ V/ y# j  @8 n( \: j    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
- P' `: S  {& n* B4 `, V    return v;  : r" U( L% x! O7 Z$ J3 ^2 A& O
}  , S+ q- I0 t) o% l0 ~
  
: Y' }, W; h( m% f//判断vector的某一元素是否存在  
" N- f7 `4 w! y( V- F# N( lbool is_element_in_vector(vector<int> v,int element){  . x# @5 {0 C3 z9 j" h+ |9 [; K
    vector<int>::iterator it;    p) c" B) _& l: Z0 d
    it=find(v.begin(),v.end(),element);  : V' f3 ?2 M" V2 ]2 g* \; I
    if (it!=v.end()){  
4 s) G9 l/ F3 J$ F3 Q. @9 c        return true;  
( V: S& V' Z( v3 I    }  8 y5 J; F; [' K. `3 p# p6 T
    else{  4 S- h$ z& \! N5 ^4 F# h
        return false;  9 L& I3 x$ {$ P! }
    }  
! u8 ]; R2 j1 {( M8 F9 J, O, ]}  6 U. n1 k9 @/ Z; m( Q" H" q2 O- o
  [/mw_shl_code]
+ V0 ], [" W6 L' w# G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了