格物学 高中知识点

c++定义一个集合类,怎样用操作符重载实现交集并集运算

格物自测!为高考,从高一就准备自己的知识点储备!
2024-05-05
c++定义一个集合类,怎样用操作符重载实现交集并集运算
#include #include using namespace std;
template class MySet { public: MySet();
MySet(int s, const Type a[]);
MySet(const MySet &o);
void Empty();
bool IsEmpty() const;
bool IsMemberOf(const Type &m) const;
void Add(const Type &m);
Type Sub();
bool IsEqual(const MySet &o) const;
MySet operator&(const MySet &o);
MySet operator|(const MySet &o);
void Print();
private: Type element[1 int count;
};
template MySet::MySet() : count(0) { } template MySet::MySet(int s, const Type a[]) : count(s) { for (int i = 0;
i < s;
++i)
element[i] = a[i];
} template ::MySet(const MySet &o) { count = o.count;
for (int i = 0;
i < count;
++i)
element[i] t[i];
} template void MySet::Empty() { count = 0 } template ::IsEmp { return (count == 0);
} templname Type> bool MySet::IsEqual(const MySet &o) const { if ((count !
= o.count)
|| (IsEmp
|| (!
IsEm
return fals for (int i = {
if (element[i] !
= o.element[i])
retur } return true;
} template bool MySet::IsMemberOf(const Type &m) const { if (IsEmpty())
return fa for (int i = 0;
i < count;
++i) {
if (element[i] == m)
return true;
} return false;
} pename Type> void MySet::Add(c { if (++count > 100)
return;
element[count - 1] } template Type MySet::Sub() { if (IsEmpty())
return 0;
Type temp = element[count];
--count;
return temp;
} template MySet MySet::operator&(const MySet &o) { MySet inset;
if (IsEmpty() || o.IsEmpty())
return inset;
for (int i = 0;
i < count;
++i) {
for (int j = 0;
j < o.count;
++j)
if (element[i] == o.element[j] && !
inset.IsMemberOf(o.element[j]))

inset.Add(element[i]);
} return inset;
} template MySet MySet::operator|(const MySet &o) { MySet unset(count, element);
if (!
IsEmpty() && o.IsEmpty())
return unset;
if (IsEmpty() && !
o.IsEmpty())
return MySet(o);
for (int i = 0;
i < count;
++i) {
for (int j = 0;
j < o.count;
++j)
if (element[i] !
= o.element[j] && !
unset.IsMemberOf(o.element[j]))

unset.Add(o.element[j]);
} return unset;
} template void MySet::Print() { for (int i = 0;
i < count;
++i)
cout << element[i] << ' ';
cout << endl;
} int main() { int ia[7] = { 1, 2, 3, 4, 5, 6, 7 };
MySet a, b(7, ia);
a.Add(6);
a.Add(7);
a.Add(8);
a.Add(9);
a.Print();
b.Print();
MySet c = a | b;
MySet d = a & b;
c.Print();
d.Print();
MySet str;
str.Add("Hello");
str.Add("World!
");
str.Print();
return 0;
} None 内容来自网友回答


数学中的交集和并集有什么明显区别

最好说详细一点 ,我最近病了没回校上课

高考倒计时 {dede:global.cfg_gktime/}2024年高考时间 6月7日,8日,9日
高中知识点专业其他问题:
高中知识点
相近专业 历年高考分数 高中知识点 高一 测试 计算机 材料 机械 仪器仪表 能源动力 电气 电子信息 自动化 化工与制药 地质 矿业 纺织 轻工 交通运输 海洋工程 航空航天 兵器 核工程 农业工程 林业工程 环境科学与工程 生物医学工程 食品科学与工程 建筑 安全科学与工程 生物工程 公安技术 网络空间安全 土木 水利 测绘 植物生产 自然保护与环境生态 动物生产 动物医学 林学 水产 草学 基础医学 临床医学 口腔医学 公共卫生与预防医学 中医学 中西医结合 药学 中药学 法医学 医学技术 管理科学与工程 工商管理 农业经济管理 公共管理 图书情报与档案管理 物流管理与工程 工业工程 电子商务 旅游管理 艺术学理论 音乐与舞蹈学 戏剧与影视学 美术学 设计学 哲学 经济学 财政学 金融学 经济与贸易 法学 政治学 社会学 民族学 马克思主义理论 公安学 教育学 体育学 中国语言文学 外国语言文学 新闻传播学 历史学 数学 物理学 化学 天文学 地理科学 大气科学 海洋科学 地球物理学 地质学 生物科学 心理学 统计学 高考试题库 力学