📄 b_6_1.cpp
字号:
#include "stdafx.h"
#include "iostream"
using namespace std;
const int max=100;
class set
{
private:
int list[::max];
int setSize;
public:
set() { setSize=0;} // 缺省构造函数
set(int a[],int size); // 构造函数
set(set& s); // 拷贝函数
void empty(){setSize=0; }
bool isempty();
bool ismember(int n);
void add(int n);
set intersection(set& SET);
void print();
};
set::set(int a[],int size) //构造函数
{ if(size>=::max)
setSize=100;
else
setSize=size;
for(int i=0;i<setSize;i++)
list[i]=a[i];
}
set::set(set& s) // 拷贝函数
{ setSize=s.setSize;
cout<<"调用拷贝函数!"<<endl;
for(int i=0;i<setSize;i++)
list[i]=s.list[i];
}
bool set::isempty()
{ if(setSize==0)
return true;
else
return false;
}
bool set::ismember(int n)
{ for(int i=0;i<setSize;i++)
if(list[i]==n)
return true;
return false;
}
void set::add(int n)
{ if(ismember(n))
{ cout<<"该元素已经在集合内!";
return ;
}
else if(setSize> ::max)
{ cout<<"集合已满,不能增加元素!";
return;
}
else
list[setSize++]=n;
}
set set::intersection(set& sourceSet)
{ int temp[100],size=0;
for(int i=0;i<setSize;i++)
for(int j=0;j<sourceSet.setSize;j++)
if(list[i]==sourceSet.list[j])
{temp[size++]=list[i];
break;
}
return set(temp,size);
}
void set::print()
{ cout<<"{";
for(int i=0;i<setSize-1;i++)
cout<<list[i]<<",";
if(setSize>0)
cout<<list[setSize-1];
cout<<"}"<<endl;
}
void main()
{ set A; // 创建集合A
for(int i=1;i<10;i++)
A.add(i);
cout<<"A:";A.print();
cout<<"用集合A初始化集合B!";
set B(A); // 用集合A初始化集合B
cout<<"B:";B.print();
B.empty(); // 将集合B置空
cout << "集合B被置空!"<<endl;
cout<<"B:";B.print();
cout <<"为集合B增加元素!"<<endl;
for(i=9;i<15;i++) // 为集合B增加元素
B.add(i);
cout<<"B:";B.print();
cout<<"A和B的交集:";A.intersection(B).print(); // 求集合A和B的交集
cin.get(); //等待结束,以便调测程序,可以删除
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -