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

代码解释:

  1. Cassemblage 类定义:

    • 私有成员变量 n 表示集合中元素的个数,a 是一个数组用于存储集合元素。
    • 公共成员函数 Set 用于初始化集合,Show 用于输出集合元素,operator+operator- 分别用于重载加号和减号运算符,实现并集和交集运算。
  2. Set 函数:

    • 接收两个参数:a1 是一个整数数组,n1 是数组的长度,表示集合元素。
    • 将数组元素复制到类成员变量 a 中。
  3. Show 函数:

    • 对集合元素进行排序(从小到大)。
    • 输出集合元素,如果集合为空则输出 empty
  4. 运算符重载:

    • operator+ 重载运算符用于实现两个集合的并集,返回一个新的 Cassemblage 对象。
    • operator- 重载运算符用于实现两个集合的交集,返回一个新的 Cassemblage 对象。
  5. 主函数:

    • 从用户输入读取两个集合的元素个数和元素值。
    • 创建两个 Cassemblage 对象 z1z2,分别存储两个集合。
    • 计算并输出 z1z2 的并集和交集。

示例运行:

输入:

3
1 2 3
4
1 2 5 6

输出:

1 2 3 5 6
1 2

注意:

  • 该代码实现中使用了数组来存储集合元素,可能存在内存溢出的风险,对于大型集合建议使用其他数据结构,例如链表或哈希表。
  • 代码中没有对重复元素进行检查,需要自行添加判断逻辑。
  • 可以根据实际需求对代码进行扩展,例如添加其他集合操作(例如子集、补集等)。
C++ 实现整数集合类:并集和交集运算

原文地址: https://www.cveoy.top/t/topic/oOUB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录