完整题目

定义一个整形数集合类Set,请通过创建动态分配的整数数组(使用new运算符)存放整数值,且数组的大小要能够根据包含元素的个数动态的变化。集合中,元素的顺序无关紧要,每个元素至多出现一次。实现如下函数:(1) 构造函数创建一个空集;(2) 复制构造函数实现深复制;(3) add 函数向集合中插入一个整数; (4) 析构函数。在main函数中对上述函数进行测试。

以下是代码,里面有很详细的解释

#include<iostream>using namespace std;class Set{public:Set(Set& s);//复制构造函数实现深复制Set(int n=0);//默认参数的构造函数void add(int n);//向集合中插入一个整数~Set();void show();//显示集合中的元素int& operator [](int index);//通过下标来改变数组的值private:int * p;int count;};Set::Set(int n){p = NULL;//将指针指向空p = new int[n];count += n;}Set::Set(Set& s)//复制构造函数实现深复制{p = new int[s.count];//s->count 是被复制的集合的元素个数count = s.count;for (int i = 0; i < s.count; i++){*(p + i) = *(s.p + i);}cout << 深复制成功 << endl;}int& Set::operator [](int index)//通过下标来改变数组的值{static int temp = 0;if (index < 0 || index >= count){cout << 下标越界 << endl;return temp;}return *(p + index );}void Set::add(int n) //向集合中插入一个整数{for (int i = 0; i < this->count; i++)if (p[i] == n){cout << 集合中已有该元素,无法插入 << endl;//实现集合中每个元素最多出现一次return;}count++;//个数加1int* p1 = new int[this->count];//临时申请一块空间来存数据for (int i = 0; i < this->count-1; i++)p1[i] = p[i];//将数据存到p1中delete[] p;//销毁原来空间p = new int[count];//再次申请空间for (int i = 0; i < this->count-1 ; i++)p[i] = p1[i];//将原先数据存到p中p[count - 1] = n;//存入插入的元素delete[] p1;p1 = NULL;//要记得释放临时申请的空间cout << 插入成功 << endl;}Set::~Set(){delete[]p;p = NULL;}void Set::show(){for (int i = 0; i < count; i++){cout << p[i] <<endl ;if ((i+1) % 11 == 0)cout << endl;}}int main(){Set s;int n, m;cin >> n >> m;s.add(n);s.show();s.add(m);s.show();// cout << s[0] << << s[1] << endl;Set ss(s);ss.show();ss[0] = 154;ss.show();return 0;}

定义一个集合类Set,(考察动态数组的建立)相关推荐

  1. 12.定义一个集合类SET,处理整型数组。

    12.定义一个集合类SET,处理整型数组.通过成员函数重载运算符"==",判断一个数是否属于集合;通 过友元重载运算符"==",判断两个集合是否相同,即集合中的 ...

  2. 定义一个集合类setColour,要求元素为枚举类型值

    目录 题目 前言 集合的实现的两种方法: 枚举类型: 方式一 总体实现原理 各函数实现 构造函数 拷贝构造函数和赋值运算符重载 ">>"的 重载 "<& ...

  3. java定义一个方法,返回整数数组的元素最大值

    java定义一个方法,返回整数数组的元素最大值 /*** 定义一个方法* 返回整数数组的元素最大值*/ public class Test23 {public static int maxArray( ...

  4. python 定义一个无限制的二维数组方法

    python 定义一个无限制的二维数组方法 自定义二维数组方式 n = int(input()) mapL = [list(map(int,input().split())) for _ in ran ...

  5. 定义一个包含十个元素的数组

    ##1.定义一个包含十个元素的数组.数组元素自己给出 2.遍历打印出数组元素 3.求出数组当中的最小值打印出来 4.求出数组当中的最大值打印出来 `public static void main(St ...

  6. 在C#中如何定义一个变长的结构数组?如果定义好了,如何获得当前数组的长度?...

    用ArrayList,他就相当于动态数组,用add方法添加元素,remove删除元素,count计算长度

  7. c语言定义一个长度为6的数组,定义一个长度为6的数组,从键盘输入6个数据给数组,并显示;然后输出该数组中第三大的数据x....

    满意答案 rui0616 推荐于 2017.09.28 采纳率:45%    等级:8 已帮助:213人 我不知道你需要使用C还是C++,所以我偶是用了C++#include #include usi ...

  8. sqlserver如何定义一个静态变量_[Bazel]自定义规则实现将多个静态库合并为一个动态库或静态库...

    1 前言 2 自定义规则实现 2.1 规则功能 2.2 实现规则的理论基础 2.3 规则代码实现 3 总结 4 参考资料 1 前言 为了实现如标题所述的将多个静态库合并为一个动态库,内置的 Bazel ...

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

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

最新文章

  1. Handler 实现的一个循环操作
  2. 美国互联网瘫痪了,你的密码怎么办?
  3. 开发日记-20190731 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 17
  4. 你必须拥有的Python调试神器
  5. 返回空的List集合
  6. android monkey压力测试(二)
  7. Qt::WA_QuitOnClose用法
  8. 端午将至……想和程序猿Coding个粽子行不行?
  9. DataGridView插入图片
  10. arm指令集_重磅!Arm宣布:指令集,客户可自定义
  11. Python 数据结构与算法——从某个列表中找出两个彼此最接近但不相等的数
  12. 扬州大学c语言上机作业答案,扬州大学C语言上机作业1-9整理
  13. 基于SSM的汽车订票系统
  14. Cadence OrCAD Capture 在图纸中添加系统框图的方法
  15. pvs-stdio ue4_云中的PVS-Studio:Azure DevOps
  16. 实验三:CART分类决策树python实现(两个测试集)(一)|机器学习
  17. PCL点云库必备知识点4——pointcloud2消息格式的转换
  18. 视通科技知识产权保护中心审理庭解决方案:助力知识产权保护中心信息化建设
  19. jmap heap输出解析
  20. c语言万年历设计摘要,万年历设计报告

热门文章

  1. android开发菜单,Android学习指南之十六:Android菜单详解
  2. linux ubuntu 切换到超级用户失败的解决办法(su 认证失败)
  3. 牛客 华为机试(我的代码记录)
  4. python os.popen()方法(用于从一个命令打开一个管道)
  5. 拉格朗日乘数法(一种寻找变量受一个或多个条件所限制的多元函数的极值的方法)
  6. ugui unity 图片缩放循环_Unity基础系列(四)——构造分形(递归的实现细节)...
  7. 手写一个简单的线程池MyThreadPool
  8. JS中for循环的两种写法
  9. python测试用例怎么写_Python单元测试unittest的具体使用示例
  10. python矩阵运算_Python矩阵常见运算操作实例总结