c++ 求并集代码

求两个集合的并集。算法要非常简单,菜鸟也能看懂。
2025-05-18 14:30:39
推荐回答(2个)
回答1:

//有以下2个集合
int a[] = {1,2,3,4,5}, b[] = {6,7,8,9,0};
//现在求并集
//求出集合a,b元素个数
int sizeA = sizeof(a) / sizeof(int);
int sizeB = sizeof(b) / sizeof(int);
//开始合并2个集合,
for(int indexB = 0; indexB < sizeB; indexB ++)
{
    //数组a长度是不够了,只能容纳5个元素,所以需要扩大长度
    //增加一个元素的长度,数组元素为int型,因此每个元素长度为sizeof(int),
    a = realloc(a,sizeof(int)); 
    
    //从a集合的sizeA+1(第6个元素)开始向后添加B中所有元素
    a[sizeA + indexB ] = sizeB[indexB ];
}

这样就把数组a和b合并了,也就是并集

回答2:

比较简单!
//有以下2个集合
int a[] = {1,2,3,4,5}, b[] = {6,7,8,9,0};
//现在求并集
//求出集合a,b元素个数
int sizeA = sizeof(a) / sizeof(int);
int sizeB = sizeof(b) / sizeof(int);
//开始合并2个集合,
for(int indexB = 0; indexB < sizeB; indexB ++)
{
    //数组a长度是不够了,只能容纳5个元素,所以需要扩大长度
    //增加一个元素的长度,数组元素为int型,因此每个元素长度为sizeof(int),
    a = realloc(a,sizeof(int)); 
     
    //从a集合的sizeA+1(第6个元素)开始向后添加B中所有元素
    a[sizeA + indexB ] = sizeB[indexB ];
}
// 去重 (algorithm 库)
unique(a, a + sizeA + sizeB);