|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
" Q: U7 g: f5 W) q两个vector 去重复,相交,合并的函数分享
0 n& D& d( D# f' X0 m6 `' @$ F1 g
[mw_shl_code=c,true]//容器vector中元素的去重
0 q$ z& {) y% j$ t& |vector<int> unique_element_in_vector(vector<int> v){ ; o+ K% a- K5 H0 a# C E. h
vector<int>::iterator vector_iterator; 0 G$ d. g$ T1 w
sort(v.begin(),v.end());
% x; U/ J- M. N. T, v) u" v! p5 | vector_iterator = unique(v.begin(),v.end()); 4 t! p* q) e! U+ d
if(vector_iterator != v.end()){ # ?5 L7 |# Q# ^
v.erase(vector_iterator,v.end()); " n) H, N$ T. M O
} / {" z$ T" A3 a+ S& {
return v; % g& r- C& g) i2 r; B4 t) o# Q
} 6 e/ Y6 c( k8 z, k) d- h
6 |9 X6 P0 |" V; W//两个vector求交集 3 s0 Q# r8 s7 [; W* S, {
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){ 8 N7 o7 b z6 X
vector<int> v; Z/ W! ^% a f6 I5 P8 I2 n0 r8 E
sort(v1.begin(),v1.end());
* o! L6 i& s* L9 X( o sort(v2.begin(),v2.end());
# B' s) S! y S; Q c set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集 $ ?5 R d( X8 a s4 O& f
return v;
9 z% ~: P% n# r. o7 y% P& H} & }# s2 G$ ?5 R
$ m5 x9 B% d" z0 v) M//两个vector求并集
: L5 e5 Z4 B+ u+ wvector<int> vectors_set_union(vector<int> v1,vector<int> v2){
7 w6 g) p& I7 v: B) c vector<int> v;
( B/ M( s. r% O- ]9 i) E ~ sort(v1.begin(),v1.end()); 3 w" ]( c& {$ _: X9 E
sort(v2.begin(),v2.end()); # K! s$ Y/ ?! v' V* W1 X( \
set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集 ! n$ J. o% p# i6 O7 }
return v; * M7 O# B) |9 x/ u% Z, e- Z
}
+ z g* l6 h1 R' g& m ' d, n# S6 ~- {2 s
//判断vector的某一元素是否存在
! C' X+ a" D! v8 Tbool is_element_in_vector(vector<int> v,int element){ % K, n; ?* }( K7 P9 w8 d
vector<int>::iterator it;
# Z8 g6 o$ m% ` it=find(v.begin(),v.end(),element); S" @4 z- ~1 x7 K1 Y
if (it!=v.end()){ 8 \7 T; o- j* ]8 G, C8 ]
return true;
5 x, R' S/ L) P* i } ! W1 u8 H' h9 B9 H% n' e
else{ 2 h9 \9 k7 _6 U' F; [ q8 G
return false;
! f6 ~% {- o: M! L' i, |; I& L }
t% R5 D* n8 Q$ d} 4 d7 q! v6 I1 k4 }
[/mw_shl_code]
4 N# s' [2 ~* t$ N# s/ ]& l2 L |
|