这个程序是用位向量来实现的集合,用数组的下标来表示集合中的元素,而数组的元素0或1来表示集合有无该元素,因此,它适合于整数集合,且值不是很大的情况。 #include <iostream> #include <assert.h> using namespace std; const int DefaultSize = 100; class Set { private: int * bitVector; int MaxSize; public: Set ( int MaxSetSize = DefaultSize ); ~Set ( ) { delete [ ] bitVector; } void MakeEmpty ( ) { for ( int i = 0; i < MaxSize; i++ ) bitVector[i] = 0; } int AddMember ( const int x ); int DelMember ( const int x ); Set& operator = ( Set & right ); Set& operator + ( Set & right ); Set& operator * ( Set & right ); Set& operator - ( Set & right ); int Contains ( const int x ); int SubSet ( Set & right ); int operator == ( Set & right ); void Print(); }; //构造函数