set_intersection:求兩個容器的交集
set_union:求兩個集合的並集
set_difference:求兩個集合的差集
1.set_intersection
#includeusingnamespace
std;
#include
#include
//常用集合演算法 set_intersection
void myprint(int
val)
void
test01()
vector
vtarget;
//目標容器需要提前開闢空間
//最特殊情況 大容器包含小容器 開闢空間 取小容器的size即可
vtarget.resize(min(v1.size(), v2.size()));
//獲取交集
vector::iterator itend =set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());
for_each(vtarget.begin(), itend, myprint);
cout
<}int
main()
2.set_union
#includeusingnamespace
std;
#include
#include
//常用集合演算法 set_union
void myprint(int
val)
void
test01()
vector
vtarget;
//目標容器提前開闢空間
//最特殊情況 兩個容器沒有交集,並集就是兩個容器size相加
vtarget.resize(v1.size() +v2.size());
vector
::iterator itend =set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());
for_each(vtarget.begin(), itend, myprint);
cout
<}int
main()
3.set_difference
#includeusingnamespace
std;
#include
#include
void myprint(int
val)
//常用集合演算法 set_difference
void
test01()
//建立目標容器
vectorvtarget;
//給目標容器開闢空間
//最特殊情況 兩個容器沒有交集 取兩個容器中大的size作為目標容器開闢空間
vtarget.resize( max(v1.size(),v2.size()) );
cout
<< "
v1和v2的差集為:
"
::iterator itend =set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());
for_each(vtarget.begin(), itend, myprint);
cout
<< "
v2和v1的差集為:
"
for_each(vtarget.begin(), itend, myprint);
cout
<}int
main()
常用集合演算法
1.set intersection 求兩個容器的交集 include pch.h include include include using namespace std set intersection void test01 2.set union 並集 set union void test0...
C 常用集合演算法
set intersection 求兩個容器的交集 set union 求兩個容器的並集 set difference 求兩個容器的差集 1 set intersection 求交集,求交集的兩個集合必須有序,目標容器開闢空間需要從兩個容器中去最小值,set intersection返回值即是交集中...
c 常用集合演算法
演算法簡介 set intersection 求兩個容器的交集 set union 求兩個容器的並集 set difference 求兩個容器的差集 set intersection 功能描述 求兩個容器的交集 函式原型 set intersection iterator beg1,iterator...