第2题.改进第一次作业中的IntSet,分别使用运算符+、*、-和<<表示集合并、集合交、
集合差和集合输出。(必须上机验证)
/* intset.h */ #ifndef INTSET_H #define INTSET_H class IntSet { }; #endif
/* intset.cpp */ #include \ #include
IntSet::IntSet(int m) { if (m<1) exit(1); cursize=0; x=new int[maxsize=m]; } IntSet::~IntSet() { delete x; } IntSet::IntSet(const IntSet& m) { }
bool IntSet::member(int t) const {
int l=0; int u=cursize-1; while (l<=u) { }
return false;
int m=(u+l)/2; if (t u=m-1; l=m+1; return true; else if (t>x[m]) else cursize=m.cursize; x=new int[maxsize=m.maxsize]; for (int i=0;i int cursize,maxsize; int *x; bool member(int t) const; IntSet(int m = 100);// 构造函数 IntSet(const IntSet&);// 拷贝构造函数 ~IntSet();// 析构函数 插入元素 集合差 集合并 集合交 void insert(int t);// public: friend ostream& operator<<(ostream&,const IntSet&); IntSet operator-(const IntSet&);// IntSet operator+(const IntSet&);// IntSet operator*(const IntSet&);// } void IntSet::insert(int t) { } ostream& operator<<(ostream& os, const IntSet& is) { } IntSet IntSet::operator-(const IntSet& anotherset) { } IntSet IntSet::operator+(const IntSet& anotherset) { } IntSet IntSet::operator*(const IntSet& anotherset) { IntSet r; for (int i=0;i if(anotherset.member(x[i])) r.insert(x[i]); IntSet r = anotherset; if(!anotherset.member(x[i])) r.insert(x[i]); for (int i=0;i for (int i=0;i if(!anotherset.member(x[i])) r.insert(x[i]); cout << \; if (is.cursize>0) { } cout << \; return os; for (int i=0;i os < os <<','; if (member(t)) {return;} if (cursize>=maxsize) {exit(1);} x[cursize++]=t; for (int i=cursize-1;i>0;i--) { if (x[i] x[i-1]=temp; } else{ break;}} return r; return r; return r;} 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库面向对象技术C++平时作业(2)在线全文阅读。
相关推荐: