求集合{a}+集合{b}的并集,输出按从小到大排列 ,才用stl里面的set<>:
#include<iostream>
#include<string>
#include <cstdio>
#include <cmath>
#include<vector>
#include<algorithm>
#include<sstream>
#include<cstdlib>
#include<set>
using namespace std;
int main()
{
int n,m;
set<int> a; //求集合{a}+集合{b}的并集
//输出按从小到大排列
set<int> b;
set<int> c;
while(cin>>n>>m)
{
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
a.insert(x);
}
for(int i=1;i<=m;i++)
{
int x;
cin>>x;
b.insert(x);
}
for(set<int>::iterator it=a.begin();it!=a.end();it++)
{
c.insert(*it);
}
for(set<int>::iterator jt=b.begin();jt!=b.end();jt++)
{
c.insert(*jt);
}
int first=1;
for(set<int>::iterator kt=c.begin();kt!=c.end();kt++)
{
if(!first)cout<<" ";
cout<<*kt;
first=0;
}
cout<<endl;
a.clear();
b.clear();
c.clear();
}
return 0;
}