Mmmmh..non mi sembra che questa soluzione sia corretta,ora la provo ma a naso non mi sembra.io ne ho buttato giù una in c,poi te la converti tu in c++ tanto è semplice.
codice:
#include <stdio.h>
int not_condiv(int a1[], int a2[],int elements[],int len);
int main()
{
//Poi vedi tu come acquisire gli array e la diemensione
int len = 6,dim,i;
int a1[] = {1,7,8,9,5,4};
int a2[] = {1,3,4,9,5,0};
int* elements = (int*)malloc(sizeof(int) * 2 * len) ;
dim = not_condiv(a1,a2,elements,len);
for(i=0;i<dim;i++)
printf("%d ",elements[i]);
getchar();
free(elements);
}
int not_condiv(int a1[], int a2[],int *elements,int len)
{
//questa è la soluzione più ingenua poi sicuramente
//si può fare di meglio ma ora non ho tempo per pensarci
int i,j,flag,dir,k=0;
int *ar1,*ar2;
for(dir = 0 ;dir < 2; dir++)
{
if(dir)
{
ar1 = a1;
ar2 = a2;
}
else
{
ar1 = a2;
ar2 = a1;
}
for (i = 0; i<len ; i++)
{
flag = 0;
for(j = 0;j<len;j++)
flag |= (ar1[i] == ar2[j]);
if(!flag)
elements[k++] = ar1[i];
}
}
return k;
}