C++STL算法篇之集合算法

集合算法

当然最好还是要包含
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;
}

集合算法讲解就到这里

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>