C++ STL 集合算法 set_union、set_intersection、set_intersection

#include 
#include 
#include 
#include 

using namespace std;

void printV(vector &vec)
{
	for (vector::iterator it = vec.begin();it!=vec.end();it++)
	{
		cout << *it << "  ";
	}
	cout << endl;
}

void set_union_()
{
	vector vec1;
	vec1.push_back(1);
	vec1.push_back(3);
	vec1.push_back(5);

	vector vec2;
	vec2.push_back(2);
	vec2.push_back(4);
	vec2.push_back(6);

	vector vec3;
	vec3.resize(vec1.size() + vec2.size());

	//set_union:取并集
	set_union(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), vec3.begin());
	printV(vec3);
}

void set_intersection_()
{
	vector vec1;
	vec1.push_back(1);
	vec1.push_back(3);
	vec1.push_back(5);

	vector vec2;
	vec2.push_back(1);
	vec2.push_back(4);
	vec2.push_back(6);

	vector vec3;
	vec3.resize(vec1.size() + vec2.size());

	//set_intersection:取交集
	set_intersection(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), vec3.begin());
	printV(vec3);
}

void set_difference_()
{
	vector vec1;
	vec1.push_back(1);
	vec1.push_back(3);
	vec1.push_back(5);

	vector vec2;
	vec2.push_back(1);
	vec2.push_back(4);
	vec2.push_back(6);

	vector vec3;
	vec3.resize(vec1.size() + vec2.size());

	//set_intersection:取差集(vec1-vec2)
	set_difference(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), vec3.begin());
	printV(vec3);
}

void main()
{
	set_union_();
	set_intersection_();
	set_difference_();

	system("pause");
}

 

你可能感兴趣的:(STL)