12.定义一个集合类SET,处理整型数组。通过成员函数重载运算符“==”,判断一个数是否属于集合;通
过友元重载运算符“==”,判断两个集合是否相同,即集合中的所有元素相同,但顺序可不同。具体要求如下:
(1)私有数据成员:
int *a; //数据成员,存放整型数组,集合为数组中的所有元素 
int len; //数据成员,数组的长度 
(2)公有成员函数:
SET(int*p,intn):构造函数,以形参初始化数据成员;
int operator==(intm):重载函数,判断m是否属于当前对象所属的集合;
friend int operator==(SET&s1.SET&s2):重载函数,判断s1和s2所属的集合是否相同,可在该函数中调用类的其他函数;
void print():输出集合;
~SETO:析构函数,释放动态内存。
(3)对所定义的类进行测试。以集合a{1,2,3,4,5}、集合b{1,2,3,4,5}、集合c{1,2,3,4,5,6}、集合d{1,3,5,7,9}
为测试数据,判断a与b、a与c、a与d之间是否相同。

#include<iostream>
using namespace std;
class SET
{
private:int* a;int len;
public:SET(int* p, int len){this->len = len;a = new int[len];for (int i = 0; i < len; i++){a[i] = p[i];}}~SET(){delete[]a;}int operator==(int num){for (int i = 0; i < this->len; i++){if (a[i] == num)return 1;}return 0;}friend int operator==(SET& s1, SET& s2){if (s1.len != s2.len)return 0;for (int i = 0; i < s1.len; i++){if (!(s2 == s1.a[i]))return 0;}return 1;}void print(){for (int i = 0; i < len; i++)cout << a[i] << " ";cout << endl;}
};
int main()
{int arr1[5] = { 1,2,3,4,5 }; int arr2[5] = { 1,2,3,4,5 };int arr3[6] = { 1,2,3,4,5,6 };int arr4[5] = { 1,3,5,7,9 };SET a(arr1, 5), b(arr2, 5), c(arr3, 6), d(arr4, 5);int num; cin >> num;if (d == num)cout << num << "在子集d内" << endl;elsecout << num << "不在子集d内" << endl;cout << "--------";if (a == b){cout << "子集相同" << endl; cout << "a的子集:";  a.print(); cout << "b的子集:";  b.print();}else{cout << "子集不同" << endl; cout << "a的子集:";  a.print(); cout << "b的子集:";  b.print();}cout << "--------";if(b==d){cout << "子集相同" << endl; cout << "b的子集:"; b.print(); cout << "d的子集:"; d.print();}else{cout << "子集不同" << endl; cout << "b的子集:"; b.print(); cout << "d的子集:"; d.print();}system("pause");
}

12.定义一个集合类SET,处理整型数组。相关推荐

  1. 定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。

    定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数:然后按顺序每五个数求出一个平均值,放在另一个数组中并输出. var arr = [];for (var i = 1; i <= 6 ...

  2. 定义大小为100的整型数组,使用随机函数给数组元素赋值,数值的范围为1-100,并且不容许重复

    #include<stdio.h> #include<stdlib.h> //随机函数 #include<time.h> int main() {int a[100 ...

  3. c语言学习-定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放

    定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放 程序流程图: 代码: #include<stdio.h> void main() { int a[10]; int ...

  4. java 整型数组定义_在Java中定义一个具有10个元素的整型数组a的语句是:___

    在Java中定义一个具有10个元素的整型数组a的语句是:___ 答: int [] arr = new int[10] 在借贷记账法下() 答:在账户结构上,"借"和"贷 ...

  5. int java 声明_怎样用java定义一个int数组 C++ 怎么声明一个整型数组?

    导航:网站首页 > 怎样用java定义一个int数组 C++ 怎么声明一个整型数组? 怎样用java定义一个int数组 C++ 怎么声明一个整型数组? 相关问题: 匿名网友: int[] anA ...

  6. 定义类MyProgram,包含两个属性:一个是private的整型属性data、一个是private的String类型属性str,重写toString,equals

    题目: 定义一个类MyProgram,包含两个属性:一个是private的整型属性data.一个是private的String类型属性str,封装这两个属性的四个方法setData( )和getDat ...

  7. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  8. C语言编程>第十六周 ⑧ S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度。请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中

    例题:S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度.请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中,函数返回数组a的长度. 例如,s=&qu ...

  9. 关于《输入一个字符串,内有数字和非数int字符,如a123x456,将其中连续的数作为一个整数,依次存放到整型数组a中》的一点看法

    最近刚刚学习了C基础这门课程,作到了这个习题,这个题目要求将字符串中的数字作为整数存放到整型数组中,这个题目有一个特点就是字符串中除了有数字还有非数int字符.看完题目,我顿时来了兴趣. 在一开始我选 ...

最新文章

  1. 若要加载模块二进制_春哥说 | 浅谈NodeJs的模块机制-2
  2. android各目录大小,Android 基础篇 — 放不同drawable文件夹中图片的大小
  3. Linux 内核链表剖析(二十)
  4. Hello World with Spring 3 MVC
  5. MAC下使用OpenSSL生成私钥和公钥
  6. Tensorflow ExponentialMovingAverage 详解
  7. 自定义加载等待框(MBProgressHUD)
  8. java二进制 中文_Java 实现中文与二进制代码互转
  9. win10创建html,小米随身WIFI在WIN10下无法创建.htm
  10. matlab 平滑曲线连接_MATLAB数据可视化
  11. 区块链技术应用与安全发展
  12. ecshop二次开发手册【基本结构】
  13. Given no hashes to check 131 links for project 'pip': discarding no candidates
  14. VS2015设置网站/WebSite的启动端口
  15. 什么是粘包和拆包,Netty如何解决粘包拆包?
  16. qq音信点亮最全说明
  17. 使用solr 检索word文档
  18. 【PM学习笔记】酸梅干超人 - 零基础学B端UI设计 学习笔记
  19. [zz]GB2312/GBK/GB18030/BIG5 的历史
  20. 1的恋爱机会 戒指的意义:他不由自主的选择(2)

热门文章

  1. MySQL数据库创建用户及授权操作
  2. 2020年上海市高等学校信息技术水平考试试卷_三级_数据科学技术及应用_模拟卷_三、程序填空题_答案
  3. AIE磷脂化合物微球/AIE分子脂质体磷脂化合物微球/表面基团修饰AIE微球的制备过程
  4. 从平凡到非凡 阿里云李克的技术进阶之路
  5. 【记录】记第一次使用Postman9.22.2英文版配置测试接口
  6. 基于Qemu搭建imx6l模拟开发板环境+添加驱动+驱动测试
  7. 练习5-3 数字金字塔(15 分)
  8. 在阿里云安装redis
  9. Standford 机器学习应用的建议及机器学习系统的设计
  10. 你真的了解测试用例、测试流程模型、测试方法吗?详解