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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x
2 v$ n* @5 v% ^" S8 I
两个vector 去重复,相交,合并的函数分享
+ I2 w# w+ @7 o& ^1 |( v; p8 i4 |9 m1 e  ^0 ?2 \7 g8 l
[mw_shl_code=c,true]//容器vector中元素的去重  
+ i- J( V; Z5 C( x  H9 lvector<int> unique_element_in_vector(vector<int> v){  
$ y0 ~6 Z* Q" {: r9 l    vector<int>::iterator vector_iterator;  
. K# r3 U& I( ^1 d5 r5 A, j8 @/ K    sort(v.begin(),v.end());  
) Y  p4 K+ E- f; l' r% ^    vector_iterator = unique(v.begin(),v.end());  
, d1 m3 B# [( @2 ^* ~    if(vector_iterator != v.end()){  5 W% V6 t$ g2 `6 V3 N* e4 f9 ~
        v.erase(vector_iterator,v.end());  0 Y2 l% l9 ~% ?: K8 a" z0 V
    }  . ^5 Y7 R" h( r* b8 F. z
    return v;  
3 I, w7 f9 y' F! b: B. ?9 y9 S}  
* I4 X  N# U' Q" L% @. N, V( N$ P  
/ M1 J. c8 b" |! t- |7 u//两个vector求交集  
' I! W2 u7 @6 E; vvector<int> vectors_intersection(vector<int> v1,vector<int> v2){  * m5 J; [1 p, ^  h# l" m
    vector<int> v;  7 d* F- I: D4 [* D0 i( @
    sort(v1.begin(),v1.end());     8 d4 K* }4 k% j$ E
    sort(v2.begin(),v2.end());     3 E' b* A' X8 o: V
    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   " W2 J6 W0 q' Q: _$ C
    return v;  
3 Q0 w! D% _. d, I- ?# @6 y) s}  - K3 X6 N+ l. ?! g) [
  - S6 Q5 @* s& H7 v6 W% i9 s
//两个vector求并集  
. v' P# w+ E3 q* i9 C" }vector<int> vectors_set_union(vector<int> v1,vector<int> v2){  , t6 }7 U2 u1 ?2 Y
    vector<int> v;  
7 M4 m" l: N5 |: r+ R9 \+ r    sort(v1.begin(),v1.end());     ; t  p: N) m/ n2 V5 O
    sort(v2.begin(),v2.end());     : Q  F+ }* P( r3 e; U6 \
    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   . ^2 g3 t/ o2 b/ l+ q3 S  ?
    return v;  : ^+ S. Z8 ?! H: F0 @8 C
}  
  P+ Z) S  h$ ]" Q' Z  6 @# P4 G; B) ^! Z0 _
//判断vector的某一元素是否存在  
% K4 E' P0 d# kbool is_element_in_vector(vector<int> v,int element){  $ q0 z" @4 \  U  ]
    vector<int>::iterator it;  0 ^7 J- G0 {5 z4 X2 A  k
    it=find(v.begin(),v.end(),element);  
# t2 z, d1 F+ s9 O. l/ s+ j    if (it!=v.end()){  
0 k+ ~% i4 t0 Q7 Q        return true;  
6 k  A9 L  j: s' I1 n    }  $ K# q1 f4 H. S& \1 H+ E7 |7 P
    else{  / E/ b* P* r1 k: k. e
        return false;  . d) r8 ?: @7 d
    }  
& a9 L3 t- \+ s5 q}  7 ?0 ]- u: z# i5 T9 d
  [/mw_shl_code]' {2 B0 x; m6 S( 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二次开发专题模块培训报名开始啦

    我知道了