集合算法
当然最好还是要包含
functional
algorithm
这2个头文件
集合算法有4个函数
1.set_union 交集
2.set_difference 差集
3.set_intersection 交集
4. set_symmetric_difference 对称差集
这4个函数的参数用法都差不多
set_union(并集)
就是求2个容器的并集,有5个参数,前4个参数分别为2个容器的范围,
最后一个参数可以是个输出流,直接打印出来,也可以存在第三个容器的起始位置
#include<iostream> #include<functional> #include<algorithm> #include<string> #include<vector> using namespace std; int main() { vector<int> date1{ 1, 2, 3, 4, 7, 8 }; vector<int> date2{ 5, 6, 7, 8 }; //1. set_union 并集算法 //可以放到另一个容器中,也可以直接使用输出流打印出来 set_union(date1.begin(), date1.end(), date2.begin(), date2.end(), ostream_iterator<int>(cout, " ")); return 0; }
set_difference(差集)
#include<iostream> #include<functional> #include<algorithm> #include<string> #include<vector> using namespace std; int main() { vector<int> date1{ 1, 2, 3, 4, 7, 8 }; vector<int> date2{ 5, 6, 7, 8 }; //2.set_difference 差集算法 set_difference(date1.begin(), date1.end(), date2.begin(), date2.end(), ostream_iterator<int>(cout, " ")); return 0;
set_intersection(交集)
#include<functional> #include<algorithm> #include<string> #include<vector> using namespace std; int main() { vector<int> date1{ 1, 2, 3, 4, 7, 8 }; vector<int> date2{ 5, 6, 7, 8 }; //3.交集 set_intersection(date1.begin(), date1.end(), date2.begin(), date2.end(), ostream_iterator<int>(cout, " ")); cout << endl; return 0; }
set_symmetric_difference(对称差集)
#include<iostream> #include<functional> #include<algorithm> #include<string> #include<vector> using namespace std; int main() { vector<int> date1{ 1, 2, 3, 4, 7, 8 }; vector<int> date2{ 5, 6, 7, 8 }; //4.对称差集算法 set_symetric_difference set_symmetric_difference(date1.begin(), date1.end(), date2.begin(), date2.end(),ostream_iterator<int>(cout," ")); cout << endl; return 0; }
集合算法讲解就到这里