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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x

% @4 V6 ?* i+ Y& L4 o  ^  y9 _两个vector 去重复,相交,合并的函数分享
* w) p% @) Q# Z/ Q! T( ^1 X
3 c  S) |- f4 ?& |( i0 r3 }0 J[mw_shl_code=c,true]//容器vector中元素的去重  
- b0 A( {. u  ]% r, {6 Tvector<int> unique_element_in_vector(vector<int> v){  
3 V1 \- t8 L+ y" m6 p% |3 p    vector<int>::iterator vector_iterator;  
1 d7 N" e" ]% e8 K, |+ \( ]    sort(v.begin(),v.end());  - u  K* g6 c; ]5 c: E
    vector_iterator = unique(v.begin(),v.end());  
( u. K$ M# ?" d8 M& r* {( L1 G    if(vector_iterator != v.end()){  
4 G: B6 p( D$ H3 H- k7 F        v.erase(vector_iterator,v.end());  
/ \# @, Y) I) W0 e; K1 P    }  
: ~& C, y8 D2 t7 f$ J    return v;  
+ U+ @* X* c! \- g! T* w: ~+ H}  2 }: ]- {. |2 p! s" S  I
  
3 L# u1 R) {4 Y# Q2 r//两个vector求交集  ( ], r. j1 o8 `+ r  m) ]! x
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  
& t/ V6 D+ M% `* i/ w    vector<int> v;  & a' l4 v: a" }) A7 Y
    sort(v1.begin(),v1.end());     : \: B* r5 I, E1 i
    sort(v2.begin(),v2.end());     
7 [8 ^8 S& o: U0 ?    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
6 f8 o5 P* f3 G1 d* Y( H    return v;  
: g& }, o/ z* x! z}  
" u1 v7 g. i: B$ ]1 M$ w  . r1 w" b1 {9 F
//两个vector求并集  
8 ~& ]) Z' M# m6 u& Zvector<int> vectors_set_union(vector<int> v1,vector<int> v2){  
$ l4 W6 _1 P( _) ^, [8 g    vector<int> v;  - j8 \4 b* H5 L/ n" u' H
    sort(v1.begin(),v1.end());     
. Q  z9 X* d# e$ S  c( B8 ~8 J    sort(v2.begin(),v2.end());     
+ ~9 N  ^9 [( |( k& j# }& Z7 g    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
; x, m0 U* \+ I; s2 l; K) [# g% T    return v;  
9 A: n0 c2 H0 t: s- |1 A0 k- J}  
2 q) P/ i+ A  s$ Q( h6 M  
0 J  Q4 \" l! U$ }6 P# y( ~! J//判断vector的某一元素是否存在  ) ~1 c" B1 p; R; v* c5 p( g8 `% X4 b
bool is_element_in_vector(vector<int> v,int element){  : F3 |" M8 s; B- S/ v( z* d
    vector<int>::iterator it;  
4 G1 b6 S: B' H7 f0 m8 w( \9 o. Q    it=find(v.begin(),v.end(),element);  
/ ~! ?- W9 B4 c, s% ]9 R    if (it!=v.end()){  
7 s9 i) F0 D9 E$ j9 S        return true;  * g8 x* u2 @$ e! q9 y& V; [) \
    }  
+ V8 X. g+ [6 Q8 w4 w1 n    else{  : K/ X9 U* m) L% L/ Z. O
        return false;  5 \) f7 U; @: ~. a$ w$ |9 ?, ^
    }  
- y6 [1 \! C+ H, S- |  y}  
7 E7 d$ W* B  }" d- _) A7 p  [/mw_shl_code]
1 z! q5 r0 O" o  a8 P$ s: V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了