交集并集

来源:互联网 发布:gtv网络棋牌频道如何看 编辑:程序博客网 时间:2024/06/05 17:52

 http://www.cppleyuan.com/viewthread.php?tid=4457

//输入集合A、B和全集C,求两集合的交集、并集、补集、差集

/*
并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)
交集: 以属于A且属于B的元素为元素的集合成为A与B的交(集)
差:以属于A而不属于B的元素为元素的集合成为A与B的差(集)
补集:A的补集C-B
*/
/*
例如:A={1,2,3} B={2,3,4} C={1,2,3,4,5}
AB并集为={1,2,3,4}
交集为={2,3}
A补集={4,5}
AB差集为={1}

*/
#include <iostream>
#include <vector>
using namespace std;

int main()
{
        vector<int> A,B,C;
        int temp;
       
        cout<<"input A,finished by a character"<<endl;
        while(cin>>temp)
                A.push_back(temp);
        cin.clear() ;//清除错误状态
        cin.ignore() ;//跳过无效数据
       
       
        cout<<"input B,finished by a character"<<endl;
        while(cin>>temp)
                B.push_back(temp);
        cin.clear() ;
        cin.ignore() ;
       
       
        cout<<"input C,finished by a character"<<endl;
        while(cin>>temp)
                C.push_back(temp);
        cin.clear();
        cin.ignore();
       
       
       
        //求交集
        vector<int> AND;
       
       
        for(int i=0;i<A.size();i++)
                for (int j=0;j<B.size();j++)
                        if(A[i]==B[j])
                                AND.push_back(B[j]);
        cout<<"交集为"<<endl;
        //显示交集
        for(i=0;i<AND.size();i++)
                cout<<AND[i]<<" ";
        cout<<endl;
                       
        //求并集
        AND.clear();

        //先把A的元素依次加入
        for(i=0;i<A.size();i++)
                AND.push_back(A[i]);
       
        //加入B中有且与A的每一个元素都不相等的元素
       
        for(int j=0;j<B.size();j++)
        {
                int k=0;
                for(i=0;i<A.size();i++)
                        if(B[j]!=A[i])
                                k++;
                if(k>=A.size())
                        AND.push_back(B[j]);
        }

        //显示并集               
        cout<<"并集为"<<endl;
        for(i=0;i<AND.size();i++)
                cout<<AND[i]<<" ";
        cout<<endl;
                               
        return 0;
}

 

原创粉丝点击