关于一个集合类Set的编写

关于一个集合类Set的编写

上星期作业实现一个Set,集合
class Set
这周写交并补等集合操作时发现上周实在写复杂了

Set::Set(int* m, int s) {
    int* n =  new int[s];
    for (int i = 0; i < s; i++)
        n[i] = m[i];
    int br = 1;
    int r;
    while (br) {
        unsigned int ti = (unsigned)time(NULL);
        unsigned int* t = &ti;
        r = rand_r(t);
        for (int i = 0; i < s; i++) {
            if (n[i] == r)
                break;
            if (n[i] != r && i == s-1)
                br = 0;
        }
    }
    for (int i = 0; i < s; i++) {
        for (int a = i+1; a < s; a++) {
            if (n[i] == n[a])
                n[a] = r;
        }
    }
    int num = 0;
    for (int i = 0; i < s; i++) {
        if (n[i] == r)
            continue;
        else
           members[num] = n[i];
        num++;
    }
    size = num;
    delete []n;
}

可以看到我不惜用随机数暴力抽取重复的数字
现在一想完全是无用功
因为我早就写了set的append方法

bool Set::append(int e) {
    for (int i = 0; i < size; i++) {
        if (e == members[i])
            return false;
    }
    members[size] = e;
    size++;
    return true;
}

我只要把数组中的数一个一个append就好了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,860评论 25 709
  • 公平,是什么?也许那是一种大家都知道,却既看不见又摸不着的东西,每个人都知道它的存在,每个人都希望它存在,然而每个...
    林soon媛阅读 971评论 0 0
  • 八月份,表姑一家要回北京去了。前几天,大家约出来一起吃顿饭,算是我给她们践行。席间聊到家里的一些事情,表姑不禁感叹...
    飞雪_飘渺阅读 352评论 3 4
  • 小时候,看着堂哥表姐高考报志愿时,姨妈和妈妈都会说你以后就去读医吧,你堂叔,表姐,还有一个远房亲戚都在医院工作...
    撒哈拉de沙阅读 360评论 0 0