|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 T: N/ [* m+ v' p; l# S2 n+ _% K
两个vector 去重复,相交,合并的函数分享
* n- u) x3 P$ L3 @9 Y/ V
2 H/ D* }& b. U% t* S[mw_shl_code=c,true]//容器vector中元素的去重 " R8 M. r$ K# O
vector<int> unique_element_in_vector(vector<int> v){
' o* p% m; W' w x2 r$ Y vector<int>::iterator vector_iterator; 8 V {6 n3 \ ]. h
sort(v.begin(),v.end());
3 r5 L' W, T" L- H1 Y vector_iterator = unique(v.begin(),v.end());
Q' B I, O9 [, E: Z/ z- [* f if(vector_iterator != v.end()){
9 B7 ^4 s) b2 K' E, D v.erase(vector_iterator,v.end()); n" }. C" [: f5 Q% K$ s3 Z2 H
}
8 l% T, B4 I6 p% V1 {9 o return v;
, _ N s. b+ R7 _$ c} 8 X5 S5 y" N1 u9 I
6 e! P; d2 p/ Q- S j//两个vector求交集
. _7 Q, r( m. H% ^vector<int> vectors_intersection(vector<int> v1,vector<int> v2){ / \( X1 ~8 h/ C, ^( A
vector<int> v; % G8 R8 x$ z% B+ m
sort(v1.begin(),v1.end());
$ \- O4 B! t3 L/ d5 y sort(v2.begin(),v2.end());
( G: `* V) M% S set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集 % t) w3 Y5 g' i1 k
return v;
7 O; k9 ]) M1 p w6 X6 i- `} 3 Y: X3 d8 {4 F
+ B: h! D. U" x5 Q ^4 @//两个vector求并集
/ b* J+ o% {; g# _* c Bvector<int> vectors_set_union(vector<int> v1,vector<int> v2){ I/ b+ S( t& H- I: k
vector<int> v;
9 F) Y: v7 E& Y. P sort(v1.begin(),v1.end()); " B* n8 R/ _6 f6 P y+ j) v7 P
sort(v2.begin(),v2.end()); 4 W& `. A6 A2 |3 u* Y2 j/ _
set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集
- F W. ^, e1 R/ f return v; 2 q; J2 ~& i \7 J1 T' W
} ( t) c1 u o; I- H1 t6 J
1 n5 l, J% b0 s! ]//判断vector的某一元素是否存在 3 O% | l# S6 |( A1 T( R. q# v' u
bool is_element_in_vector(vector<int> v,int element){ ; t6 ?" g* `+ s, Z t
vector<int>::iterator it; , r; R1 \" E2 P3 W' ^3 o7 {
it=find(v.begin(),v.end(),element);
6 {- O/ ?6 u0 s if (it!=v.end()){ 9 ~2 Y8 G* ?2 `
return true; : t( Y# ]. M: V
} 4 Z# t( v6 y+ U: f$ J, J
else{
. ^& w. p) o# A/ e- a return false;
" ~0 f/ v; P$ y( g: A% ` }
) J' J' E3 B6 z; a4 k8 \} & J* O' t# y3 R0 T
[/mw_shl_code]+ s# h( b2 f& I2 n
|
|