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

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

[复制链接]

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

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

admin 楼主

2018-4-3 07:56:54

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

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

x
, M+ Q5 P" h+ o9 {0 `4 i" O- A
两个vector 去重复,相交,合并的函数分享! I5 x& `3 d# e1 z

  h8 k. K. e- E[mw_shl_code=c,true]//容器vector中元素的去重  0 L/ R# {) E5 r: j3 r& t5 N
vector<int> unique_element_in_vector(vector<int> v){  
' g0 M- J6 L% Z) V8 [8 b    vector<int>::iterator vector_iterator;  
. g. \9 e+ |# ]. G: b% {* L; [    sort(v.begin(),v.end());  7 E; y* ^1 ]8 @2 Q% p, k5 o
    vector_iterator = unique(v.begin(),v.end());  7 v# S5 x( R; \
    if(vector_iterator != v.end()){  
+ R( b( O1 [2 D1 n' g' f% ]/ P        v.erase(vector_iterator,v.end());  
! @% f) h8 e0 W" [! y6 z    }  
( i4 Q$ S6 X; M. K( |: G    return v;  
: j9 l1 K8 y$ i# Z1 c6 Z: f}  
4 C6 k" q+ H/ T) Q2 V* x  
" `# f( c* s+ I3 m* N( X//两个vector求交集  7 c  t7 C& `: }& m2 e* g  z; g
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){  4 h3 @/ X0 s5 `
    vector<int> v;  2 Z$ m& z+ e8 T2 i
    sort(v1.begin(),v1.end());     
1 G. a# x! b# E' X' g6 j    sort(v2.begin(),v2.end());     6 E% W9 i) L7 u; h7 E+ L
    set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
2 m& w- [5 p, c0 l0 Y0 L8 M9 d    return v;  
% |, j" N- z$ j1 Y9 W}  9 A4 k1 d- @6 g7 Q5 c9 ^! C$ I! z* f
  
) t- c3 x8 s9 T& K5 N( j5 |//两个vector求并集  
, S( S$ R/ h' F/ nvector<int> vectors_set_union(vector<int> v1,vector<int> v2){    ~1 V# T5 P5 f: B/ `/ s
    vector<int> v;  7 f  Z$ D/ ^# f' d9 z7 \0 G1 J
    sort(v1.begin(),v1.end());     ; w% j' M& z2 Y9 [  O
    sort(v2.begin(),v2.end());     
4 Q8 p  Z  o- |8 i    set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集   
9 V4 [6 q) X# z% @    return v;  / x, @6 W6 C* H$ R
}  
) s% D2 O3 q" q( a  
# V; U$ y& I: l" S' S/ V3 |5 ?//判断vector的某一元素是否存在  1 T$ e# Q$ O5 P- R" Z1 B: ^
bool is_element_in_vector(vector<int> v,int element){  & u* W- ]; p8 t3 i0 A; g+ \
    vector<int>::iterator it;  
  b' E7 v2 n0 o- n    it=find(v.begin(),v.end(),element);  # Q  m7 t+ S, n. U
    if (it!=v.end()){  , @3 T4 {1 T. j& d
        return true;  + m1 _7 A9 u) N5 Q6 n; C* w
    }  . J* `  {& |5 u6 m- t$ E9 P
    else{  : h) T9 d2 Z* h4 n7 i8 y
        return false;  1 y0 c- N9 }- z5 H3 A6 P& V
    }  ( l) j; Q) C" A
}  
: _9 f- y+ b7 f/ ~! `  [/mw_shl_code]% S; m5 `6 ^% q! P9 O% Q8 w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了