SomeThing For The Test

SomeThing For The Test

就是实现一个简单的集合类IntSet

// "IntSet.h"
// Coded By abilitytao
// 2010年9月27日
#include < vector >
#include
< algorithm >
#include
< iostream >
using   namespace  std;

class  IntSet
{
public:
    vector
<int> data;
    IntSet()
    
{data.clear();}
    
~IntSet(){}
    
void insert(int x)
    
{
        
int i;
        
for(i=0;i<data.size();i++)
        
{
            
if(data[i]==x)
                
return;
        }

        data.push_back(x);
    }

    
bool IsEqual(IntSet s)
    
{
        sort(data.begin(),data.end());
        
if(data.size()!=s.data.size())
            
return false;
        
for(int i=0;i<data.size();i++)
        
{

            
if(data[i]!=s.data[i])
                
return false;
        }

        
return true;
    }

    IntSet union2(IntSet s1,IntSet s2)
    
{
        IntSet ans;
        
for(int i=0;i<s1.data.size();i++)
            
for(int j=0;j<s2.data.size();j++)
            
{

                
if(s1.data[i]==s2.data[j])
                    ans.insert(s1.data[i]);
            }

        
return ans;
    }

    IntSet incorporate2(IntSet s1,IntSet s2)
    
{
        IntSet ans;
        
for(int i=0;i<s1.data.size();i++)
        
{
            ans.insert(s1.data[i]);
        }

        
for(int j=0;j<s2.data.size();j++)
        
{
            ans.insert(s2.data[j]);
        }

        
return ans;
    }

    
void print()
    
{
        
for(int i=0;i<data.size();i++)
            printf(
"%d ",data[i]);
    }

}
;


// "IntSet.cpp"
// Coded By abilitytao
// 2010年9月27日
#include " IntSet.h "
#include
< iostream >
using   namespace  std;


int  main()
{

    IntSet s1,s2,s3,s4;
    
int x;
    
for(cin>>x;x!=0;cin>>x)
    
{
        s1.insert(x);
    }

    
for(cin>>x;x!=0;cin>>x)
    
{
        s2.insert(x);
    }

    
if(s1.IsEqual(s2))
        cout
<<"s1 is equal s2"<<endl;
    s3
=s3.union2(s1,s2);
    s4
=s4.incorporate2(s1,s2);
    cout
<<"\ns1:";
    s1.print();
    cout
<<"\ns2:";
    s2.print();
    cout
<<"\ns3:";
    s3.print();
    cout
<<"\ns4:";
    s4.print();
    
return 0;
}

你可能感兴趣的:(SomeThing For The Test)