Wednesday, 2 October 2013

intersection of sets in C++

intersection of sets in C++

i am trying to do simple sets intersection , it works correctly , but when
output comes , it shows only memory address or garbage random value , help
me ,i applied breakpoints , but it's not working . actually i am new in
C++
#include<iostream>
using namespace std;
class set
{
private:
int size;
int *elem;
public:
set(){size=0;elem=NULL;}
set (int s);
~set();
set(set &s);
set intersection(set A,int z);
void inputset();
void outputset();
};
set::set(int s)
{
size = s;
elem = new int[s];
}
void set::inputset()
{
int i;
cout<<"Enter the set Element"<< endl;
for(i=0 ; i<size ; i++)
cin>>elem[i];
}
set set::intersection(set A,int z)
{
int i,j,k=0;
set R(z);
for(i=0;i<size;i++)
{
for(j=0;j<A.size;j++)
{
if(elem[i]==A.elem[j])
{
R.elem[k]=A.elem[j];
k++;
break;
}
}
}
return R;
}
set::~set()
{
delete []elem;
}
set::set(set &s)
{
int i;
if(size>0)
{
delete []elem;
}
size = s.size;
elem = new int[size];
for(i=0;i<size;i++)
{
elem[i]= s.elem[i];
}
}
void set::outputset()
{
int i;
cout<<"The elements of new set is : "<<endl;
for(i=0;i<size;i++)
{
cout<<elem[i]<<endl;
}
cout<<endl;
}
int main()
{
int x,y,z;
char choice;
cout<<"Enter sizeof set A"<<endl;
cin>>x;
set S1(x);
S1.inputset();
S1.outputset();
cout<<"Enter sizeof set B"<<endl;
cin>>y;
set S2(y);
S2.inputset();
S2.outputset();
z=x+y;
set S3(z);
cout<<"Enter I for intersection"<<endl<<"Enter U for union"<<endl<<"Enter
D for difference"<<endl;
cin>>choice;
switch(choice)
{
case'I':
S3=S1.intersection(S2,z);
S3.outputset();
break;
default:
cout<<"Invalid entry";
}
return 0;
}

No comments:

Post a Comment