#include<iostream.h>
class set
{ private:
int *element;
int Len;
public:
set();
set(const set&);
~set();
set& operator<<(int);
bool IsMemberof(int);
set operator+(set&);
set operator^(set&);
void print();
};
set::set():element(NULL),Len(0)
{}
set::set(const set&a)
{ Len=a.Len;
element=new int [Len];
for(int i=0;i<Len;i++)
element[i]=a.element[i];
}
set::~set()
{ if(element!=NULL)
delete [] element;
}
bool set::IsMemberof(int a)
{ for(int i=0;i<Len;i++)
if(element[i]==a)
return true;
return false;
}
set &set::operator<<(int a)
{ if(IsMemberof(a))
return *this;
int *p=new int [Len+1];
for(int i=0;i<Len;i++)
p[i]=element[i];
p[Len]=a;
Len++;
element=p;
return *this;
}
set set::operator+(set&a)
{ set t=*this;
for(int i=0;i<a.Len;i++)
t<<a.element[i];
return t;
}
set set::operator^(set&a)
{ set t;
for(int i=0;i<Len;i++)
if(a.IsMemberof(element[i]))
t<<element[i];
return t;
}
void set::print()
{ set a=*this;
for(int i=0;i<a.Len;i++)
{ cout<<a.element[i]<<" ";
}
cout<<endl;
}
void main(void)
{ set a;
a<<1<<2<<3;
cout<<"set a:"<<endl;
a.print();
set b;
b<<2<<3<<4;
cout<<"set b:"<<endl;
b.print();
set c=a+b;
cout<<"set a并b:"<<endl;
c.print();
set d=a^b;
cout<<"set a交b:"<<endl;
d.print();
}