vector

-东兴- 2014-04-30 11:04:48
.h
#include <vector>
using namespace std;

class IntegerSet
{
public:
static const int size=101;

IntegerSet ( ) ;
IntegerSet ( int ) ;
IntegerSet ( int a[] , int ) ;
IntegerSet ( IntegerSet& );

IntegerSet unionOfSet ( IntegerSet& ) ;
IntegerSet intersection ( IntegerSet& ) ;

void insertElement( int ) ;
void deleteElement( int ) ;

void printSet( ) ;

bool isEqualTo( IntegerSet & ) ;

private:
vector< bool > store ;

bool judge( int key )
{
return ( key>=0 && key<size );
}

int theTrueNum( IntegerSet& integerSet5 )
{
int count=0;
for(int i=0 ; i<size ; i++ )
{
if( store[i] )
{
count++;
}
}
return count;
}
};

.cpp
#include <iostream>
#include "IntegerSet.h"
using namespace std;

IntegerSet::IntegerSet()
{
int i;
for( i=0 ; i<size ; i++ )
{
store[i]=false;
}
}

IntegerSet::IntegerSet(int a[] , int num)
{
int i ;
for( i=0 ; i<size ; i++ )
{
store[i]=false;
}
for( ; i<num ; i++)
{
if(a[i]>=0 && a[i]<size)
{
store[ ( a[i] ) ]=1;
}
}
}

IntegerSet::IntegerSet(int a)
{
int i;
int set;
for( i=0 ; i<size ; i++ )
{
store[i]=false;
}
while( cin>>set )
{
if( judge( set ) )
{
store[ set ]=1;
}
};
}

IntegerSet::IntegerSet(IntegerSet& integerSet6 )
{
int i=0;
for( ; i<size && integerSet6.store[ i ]; i++ )
{
store[ i ]=integerSet6.store[ i ];
}
}


IntegerSet IntegerSet::unionOfSet( IntegerSet& integerSet0 )
{
IntegerSet integerSet1;
for(int i=0 ; i<size ; i++ )
{
if(this->store[ i ] || integerSet0.store[ i ])
{
integerSet1.store[i]=1;
}
}
return integerSet1;
}

IntegerSet IntegerSet::intersection(IntegerSet& integerSet2)
{
IntegerSet integerSet3;

int i=0;
for( ; i<size ; i++)
{
if( store[ i ] && integerSet2.store[ i ] )
{
integerSet3.store[ i ]=1;
}
}
return integerSet3;
}

void IntegerSet::insertElement( int key)
{
if(judge(key) && !store[ key ])
{
store[ key ]=1;
}
}

void IntegerSet::deleteElement( int junk)
{
if(judge(junk) && store[ junk ])
{
store[ junk ]=0;
}
}

bool IntegerSet::isEqualTo( IntegerSet& integerSet4 )
{
if( theTrueNum(*this) == theTrueNum(integerSet4) )
{
for( int i=0 ; i<size; i++ )
{
if( store[ i ] != integerSet4.store[ i ] );
return false;
}
return true;
}

return false;
}

void IntegerSet::printSet()
{
int i=0;
while( i<size && store[ i ] )
{
cout<<i;
i++;
};
}

.cpp

#include <iostream>
#include "IntegerSet.h"
using namespace std;

int main()
{
int size;
cin>>size;
int* temp=new int[size];
if(temp!=NULL)
{
int i=0 ;
for( ; i<size ; i++)
{
cin>>temp[i];
}
}

IntegerSet IS1;
IS1.printSet();

IntegerSet IS2( size );
IS1.printSet();

IntegerSet IS3(temp , size );
IS1.printSet();

IntegerSet IS4(IS2.unionOfSet( IS3 ) );
IS1.printSet();

IntegerSet IS5(IS2.intersection( IS3 ) );
IS1.printSet();

IS1.insertElement(4);
IS1.printSet();

IS1.deleteElement(4);
IS1.printSet();



}
...全文
40 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧