您的位置:首页 > 其它

8-计算集合的并集(set)

2018-03-14 21:53 253 查看

问题描述:

给你两个集合,计算其并集,即 {A}+{B}
注:{A}+{B} 中不允许出现重复元素,但是 {A} 与 {B} 之间可能存在相同元素。

输入格式

输入数据分为三行,第一行有两个数字 n,m(0<n,m≤10000),分别表示集合 A 和集合 B 的元素个数。后两行分别表示集合 A 和集合 B。每个元素为不超出 int 范围的整数,每个元素之间用一个空格隔开。

输出格式

输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间用一个空格隔开。

样例输入1

1 2
1
2 3

样例输出1

1 2 3

样例输入2

1 2
1
1 2

样例输出2

1 2

代码解析:

#include <iostream>
#include <set>
#include <vector>
using namespace std;
int main()
{
int n,m;//分别表示两个集合元素的个数
cin>>n>>m;
set<int> sum;
for(int i=0; i<n; i++)
{
int a;
cin>>a;
sum.insert(a);//插入
}
for(int i=0; i<m; i++)
{
int b;
cin>>b;
sum.insert(b);
}
//保留
vector<int> ans;
for(set<int>::iterator it=sum.begin(); it!=sum.end(); it++)
{
ans.push_back(*it);
}
//输出
for(int i=0; i<ans.size(); i++)
{
cout<<ans[i];
if(i!=ans.size()-1)cout<<" ";
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: