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

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//输入集合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;
}
相关文章
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
916 0
|
机器学习/深度学习 编解码 算法
改进UNet | 透过UCTransNet分析ResNet+UNet是不是真的有效?(一)
改进UNet | 透过UCTransNet分析ResNet+UNet是不是真的有效?(一)
1332 0
|
消息中间件 Linux 数据处理
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(二)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
566 1
|
存储 Linux API
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(三)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
432 1
|
负载均衡 安全 应用服务中间件
nginx的强大功能和如何使用?
nginx的强大功能和如何使用?
754 2
|
消息中间件 Kafka Apache
Flink CDC+Kafka 加速业务实时化
阿里巴巴开发工程师,Apache Flink Committer 任庆盛,在 9 月 24 日 Apache Flink Meetup 的分享。
Flink CDC+Kafka 加速业务实时化
|
JSON Rust 安全
30天拿下Rust之实战Web Server
30天拿下Rust之实战Web Server
361 7
|
JSON 前端开发 JavaScript
这 2 个插件,让你的 vscode更牛逼
这 2 个插件,让你的 vscode更牛逼
|
存储 分布式计算 数据处理
使用Python和Pandas处理大型数据集的高效策略
随着大数据时代的到来,处理大型数据集已成为数据分析师和数据科学家的日常任务。本文旨在探讨如何使用Python的Pandas库高效地处理大型数据集。不同于常规的数据处理教程,本文将重点介绍数据子集化、内存优化、并行处理和数据压缩等高级策略,帮助读者在资源受限的环境中快速且准确地分析大量数据。