IntegerSet解答[1]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 skyinter 的 blog

// file name:   integerset.h

// assignment:   integerset
// description:  head of integerset class
#ifndef  integerset_h
#define  integerset_h
class integerset{
public:
   integerset();
   //default constructor;
   integerset(int* set,int size);
   //constructor from an int array;
   integerset(const integerset& ia);
   //copy constructor;
   //three ways to initialize the instance;

 friend std::istream& operator>>(std::istream & cin,integerset& ia);
   //input overload
 friend std::ostream& operator<<(std::ostream & cout,integerset& ia);
   //output overload
 void printset(std::ostream &ostr=std::cout );
   //output the instance;

   integerset operator+(integerset &addedset);
   //overload union
   integerset operator-(integerset &subbedset);
   //overload intersection
 void unionof(const integerset &set1, const integerset &set2 );
 void intersectionof( const integerset &set1, const integerset &set2 );
 bool isequalto( const integerset &set );

 void insertelement( int num );
 void deleteelement( int num );

 bool isinset( int num );
 
 
private:
 bool integer[101];
};
/*std::ostream& operator<<(std::ostream& cout,integerset& ia){
cout<<"{";
for(int index=0;index<=100;index++){
if(ia.integer[index]==true)
cout<<ia.integer[index]<<",";
}
cout<<"}";
return cout;

}*/


#endif

//integerset.cpp
// assignment:   integerset
// description:  detail  of integerset class
#include<iostream>
#include "integerset.h"


   integerset::integerset(){
//initialize the set having no integer

 for(int index=0;index<=100;index++)
  integer[index]=false;
 
}

   integerset::integerset(const integerset & ia){
//initialize the set using copy constructor
 for(int index=0;index<=100;index++)
  integer[index]=false;
 
 for(index=0;index<=100;index++)
  if(ia.integer[index]) this->integer[index]=true;
}

   integerset::integerset(int* set,int size){
//initialize the set from a integer array

 for(int index=0;index<=100;index++)
  integer[index]=false;
 for( index=0;index<size;index++)
  integer[set[index]]=true;
}

 


void  integerset::unionof(const integerset &set1, const integerset &set2 ){
 for(int index=0;index<=100;index++){
  if(set1.integer[index]==true||set2.integer[index]==true)
   this->integer[index]=true;
  else
   this->integer[index]=false;
 }
}


void  integerset::intersectionof( const integerset &set1, const integerset &set2 ){
    for(int index=0;index<=100;index++){
     if(set1.integer[index]==true&&set2.integer[index]==true)
      this->integer[index]=true;
     else
      this->integer[index]=false;
    }
   }


bool  integerset::isequalto( const integerset &set ){
 int index;
 
 for(index=0;index<=100;index++)
 {
  if(integer[index]!=set.integer[index])
   return false;
 }
  return true;
}
void  integerset::printset( std::ostream &ostr ) {

 ostr<<"{";
 for(int index=0;index<=100;index++){
  if(this->isinset(index)) ostr<<index<<",";
 }
  ostr<<'\b';
 ostr<<"}"<<std::endl;
 
}
void  integerset::insertelement( int num ){
 if(num<=100&&num>=0)
  
  this->integer[num]=true;
}

void  integerset::deleteelement( int num ){
 if(num<=100&&num>=0)
  this->integer[num]=false;
}

bool  integerset::isinset( int num ){
 return this->integer[num];
}

 

 


本文关键:IntegerSet解答
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top