C++ 实现整数集合类:并集和交集运算
C++ 实现整数集合类:并集和交集运算
本代码实现了一个简单的整数集合类,并通过重载运算符 + 和 - 来计算两个集合的并集和交集。
代码示例:
//StudybarCommentBegin
#include<iostream>
using namespace std;
class Cassemblage
{
private :
int n;
int a[1000];
public :
void Set(int a1[] ,int n1)
{
n=n1;
for(int i=0;i<n;i++)
{
a[i]=a1[i];
}
}
Cassemblage operator+(Cassemblage z);
Cassemblage operator-(Cassemblage z);
void Show()
{
int i,j,t;
if(n>0)
{
for (i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<n;i++)
{
cout<<a[i]<<' ';
}
}
else
{cout<<'empty';
}
}
};
//StudybarCommentEnd
//StudybarCommentBegin
int main( )
{
Cassemblage z1, z2, x3;
int i, n1, n2, a1[1000], a2[1000];
cin >> n1;
for(i=0; i<n1; i++)
{
cin >> a1[i];
}
z1.Set(a1, n1);
cin >> n2;
for(i=0; i<n2; i++)
{
cin >> a2[i];
}
z2.Set(a2, n2);
x3=z1+z2;
x3.Show();
cout << endl;
x3=z1-z2;
x3.Show();
return 0;
}
//StudybarCommentEnd
代码解释:
-
Cassemblage 类定义:
- 私有成员变量
n表示集合中元素的个数,a是一个数组用于存储集合元素。 - 公共成员函数
Set用于初始化集合,Show用于输出集合元素,operator+和operator-分别用于重载加号和减号运算符,实现并集和交集运算。
- 私有成员变量
-
Set 函数:
- 接收两个参数:
a1是一个整数数组,n1是数组的长度,表示集合元素。 - 将数组元素复制到类成员变量
a中。
- 接收两个参数:
-
Show 函数:
- 对集合元素进行排序(从小到大)。
- 输出集合元素,如果集合为空则输出
empty。
-
运算符重载:
operator+重载运算符用于实现两个集合的并集,返回一个新的 Cassemblage 对象。operator-重载运算符用于实现两个集合的交集,返回一个新的 Cassemblage 对象。
-
主函数:
- 从用户输入读取两个集合的元素个数和元素值。
- 创建两个 Cassemblage 对象
z1和z2,分别存储两个集合。 - 计算并输出
z1和z2的并集和交集。
示例运行:
输入:
3
1 2 3
4
1 2 5 6
输出:
1 2 3 5 6
1 2
注意:
- 该代码实现中使用了数组来存储集合元素,可能存在内存溢出的风险,对于大型集合建议使用其他数据结构,例如链表或哈希表。
- 代码中没有对重复元素进行检查,需要自行添加判断逻辑。
- 可以根据实际需求对代码进行扩展,例如添加其他集合操作(例如子集、补集等)。
原文地址: https://www.cveoy.top/t/topic/oOUB 著作权归作者所有。请勿转载和采集!