Snow_maple


私信TA

用户名:2016114438

访问量:21880

签 名:

我喜欢一个人,她叫鞠婧祎!

等  级
排  名 257
经  验 5905
参赛次数 2
文章发表 32
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

#include<iostream>
#include<set>
#include<iterator>
using namespace std;
set<int> a,b,c,d; 
int main(){
	int n,m,t;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>t;
		a.insert(t);
		d.insert(t);
	}
	cin>>m;
	for(int i=0;i<m;i++){
		cin>>t;
		b.insert(t);
		d.insert(t);
	}
	set<int>::iterator it;
    for(it=a.begin();it!=a.end();it++){
       if(b.find(*it)!=b.end()) //如果在b中找到a就输出。
       cout<<*it<<' '; 
   	   else
   	   	c.insert(*it);    //否则就插入c中,存放a-与b相同的。
    }
    cout<<endl;
    for(it=d.begin();it!=d.end();it++){cout<<*it<<' ';}
    cout<<endl;
    for(it=c.begin();it!=c.end();it++){cout<<*it<<' ';}
   }

 解题思路:主要就是根据set的特性,不会重复,且排序,则申请4个set容器,a,b,c,d;
    分别存放A,B,(A-(A∩B)),A∪B,然后在B中找A如果没找到,就插入c中(差集),否则输出(就是交集)
    这里set有一个函数就是find(),变量是指向该元素的迭代器,从b中找a中的元素如果没找到就返回b.end()。
    


    仅供参考,大神勿喷。

 

0.0分

2 人评分

  评论区

up
2018-03-22 08:54:48
  • «
  • 1
  • »