- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c程序设计实现集合交集并集差集
#includeiostream.h
class int_set{
private:
int max_size; //static?
int cur_size;
int *p;
public:
int_set(const int_set a){ //必须有拷贝构造函数,因为下面以对象为返回值
max_size=a.max_size;
cur_size=a.cur_size;
p=new int[a.max_size];
for(int i=0;icur_size;i++)p[i]=a.p[i];//因为写成(int i;icur_size;i++)而错半天!!!
}
int_set(int x){
cur_size=0;
max_size=x;
p=new int[x];
}
~int_set(){delete []p;}
int search(int x){ // 判断一个元素是否在集合中
for(int i=0;imax_size;i++)
if(p[i]==x){return 1;}
return 0;
}
void ifsearch(int x){
if(search(x))coutx在集合中!endl;
else coutx不在集合中!endl;
}
void add(int x){ // 增加一个整数到集合中
if(cur_size=max_size)cout集合已满,不可再添加元素!endl;
else if(!search(x)){
p[cur_size]=x;
cur_size++;
}
}
void dec(int x){ // 从集合中去掉一个元素
for(int i=0;imax_size;i++)
if(p[i]==x){
for(i;imax_size-1;i++)p[i]=p[i+1];
cur_size--;}
}
//输入
friend istream operator(istream in,int_set a)//注意在类内写友元的实现时不能直接使用类成员
{cout请输入集合(a.max_size个整数):;
for(int i=0;ia.max_size;i++)cina.p[i];//不能直接写p[i]
a.cur_size=a.max_size;
return in; //in可以换别的
}
//输出
friend ostream operator(ostream out,int_set a)
{
for(int i=0;ia.cur_size;i++)couta.p[i] ;
coutendl;
return out;
}
int_set jiao(int_set b )//交集
{int_set temp(max_size);
for(int i=0;ib.cur_size;i++)
if(search(b.p[i])){
temp.p[temp.cur_size]=b.p[i];
temp.cur_size++;}
return temp;
}
int_set bing(int_set b )//并集
{
int_set temp(max_size+b.max_size);//因为写成temp(max_size*2)而错半天!!!
for(int i=0;imax_size;i++)temp.p[i]=p[i];
temp.cur_size=cur_size;
for( i=0;ib.cur_size;i++)
if(!search(b.p[i])){
temp.p[temp.cur_size]=b.p[i];
temp.cur_size++;}
return temp;
}
int_set cha(int_set b )//求差
{int_set temp(max_size);
for(int i=0;imax_size;i++)temp.p[i]=p[i];
temp.cur_size=cur_size;
for(i=0;ib.cur_size;i++)
if(temp.search(b.p[i]))temp.dec(b.p[i]);
return temp;
}
/**/
};
void main()
{
int_set obj1(3);
int_set obj2(6);
cinobj1;
您可能关注的文档
- a第5讲第2章2.1-2.pdf
- B11050311 欧阳斌 图遍历.doc
- B-预不变凸函数的本质和结论.pdf
- B-预不变凸函数的性质.pdf
- a第二章 2.3Frenet标架.pdf
- B2C电商运之:数据分析.docx
- b12积分(下).ppt
- B2O3-ZrO2催化剂在气相环己酮肟重排反应中的稳定性和再生性能.pdf
- Banach空间中伪压缩映象的整体迭代原则.pdf
- Banach空间中的不动点.pdf
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)