using?namespace?std;
class?MergeList
{
int?*a;
int?size;
public:
MergeList(int?size,int?init)
{
this->size=size;
a=new?int[size];
for(int?i=0;i<size;i++)
{
a[i]=init;
}
}
MergeList()
{
}
MergeList(const?MergeList&obj)
{
this->size=obj.size;
a=new?int[size];
for(int?i=0;i<size;i++)
a[i]=obj.a[i];
}
void?SetData(int&index,?int&data)
{
a[index]=data;
}
int&GetSize(){return?size;}
~MergeList()
{
delete?[]a;
}
MergeList&operator=(const?MergeList&obj)
{
this->size=obj.size;
a=new?int[size];
for(int?i=0;i<size;i++)
a[i]=obj.a[i];
return?*this;
}
bool?Is_Same(int?&element);
MergeList?AddList(const?MergeList&obj);
void?Show()
{
for(int?i=0;i<size;i++)
cout<<a[i]<<"?";
cout<<endl;
}
};
bool?MergeList::Is_Same(int?&element)
{
for(int?i=0;i<size;i++)
{
if(a[i]==element)
return?true;
}
return?false;
}
MergeList?MergeList::AddList(const?MergeList&obj)
{
MergeList?C;?int?m=0,i=0;
?C.size=size+obj.size;
?C.a=new?int[C.size];
?if(size<obj.size||(size==obj.size))
?{
?for(i=0;i<size;i++)
?{
?C.a[i]=a[i];
?}
?}
?else
?{
?for(i=0;i<obj.size;i++)
?{
?C.a[i]=obj.a[i];
?}
?}
for(int?j=0;j<obj.size;j++)
{
if(!this->Is_Same(obj.a[j]))
{
C.a[i+m]=obj.a[j];
m++;
}
}
C.size=i+m;
return?C;
}
int?main()
{
int?LengthA,LengthB;
cout<<"input?length?a:";
cin>>LengthA;
cout<<"input?length?b:";
cin>>LengthB;
MergeList?A(LengthA,2),B(LengthB,2),C;
cout<<"input?A:"<<endl;
for(int?i=0;i<A.GetSize();i++)
{
int?a;
cin>>a;
A.SetData(i,a);
}
cout<<"input?B:"<<endl;
for(int?j=0;j<B.GetSize();j++)
{
int?b;
cin>>b;
B.SetData(j,b);
}
C=A.AddList(B);
cout<<"合並後:"<<endl;
C.Show();
}