加油吧少年


私信TA

用户名:1187276773

访问量:3941

签 名:

一起刷题,qq:1187276773

等  级
排  名 16230
经  验 769
参赛次数 0
文章发表 6
年  龄 21
在职情况 学生
学  校 石家庄铁道大学
专  业 计算机科学与技术

  自我简介:

解题思路:

既然是集合,当然要用set喽。交集就是寻找一个集合中的元素是否在另一个集合存在,用find函数即可。

并集当然是直接把两个集合插入到另一个里面就OK了。余集,A中去除B的,erase函数就可以搞定。



注意事项:
set就是集合,重复元素自动过滤,不插入。一些函数也很好用。




参考代码:

#include<iostream>
#include<set>
using namespace std;
set<int> s1,s2,s3;//A B 并集
set<int>::iterator it1,it2,it3;
int main()
{
    int i;int n;int N;
    cin>>N;
    for(i=0;i<N;i++)
    {
        cin>>n;
        s1.insert(n);

    }
    cin>>N;
    for(i=0;i<N;i++)
    {
        cin>>n;
        s2.insert(n);

    }
    for(it1=s1.begin();it1!=s1.end();it1++) //交集
     {
         it2=s2.find(*it1);
       if(it2!=s2.end())
         cout<<*it1<<" ";
       else;
     }
     cout<<endl;
     for(it1=s1.begin();it1!=s1.end();it1++)
     {
         s3.insert(*it1);
     }
      for(it2=s2.begin();it2!=s2.end();it2++)
     {
         s3.insert(*it2);
     }
     for(it3=s3.begin();it3!=s3.end();it3++) //并集
     {
        cout<<*it3<<" ";
     }
     cout<<endl;
     for(it2=s2.begin();it2!=s2.end();it2++)
     {
         s1.erase(*it2);//A中删去B的
     }
     for(it1=s1.begin();it1!=s1.end();it1++)//余集
     {
         cout<<*it1<<" ";
     }
     cout<<endl;
    return 0;
}

 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区