【C++基础】 MyArray 自己实现动态数组 类模板
admin
2024-03-23 20:16:59
0
  • TestArray

    #include
    #include"Array.h"
    using namespace std;
    ​
    int main()
    {char str[2];str[0] = 'z';str[1] = 'y';Arrayob(str, 2);
    ​cout << "Test =:" << endl;Arraycopy_ob = ob;cout << copy_ob << endl;
    ​cout << "Test <<:" << endl;cout << ob << endl;
    ​cout << "Test getsize():" << endl;cout << ob.getSize() << endl;
    ​cout << "Test +:" << endl;Arraydouble_ob;cout << ob + copy_ob << endl;
    ​cout << "Test []:" << endl;cout << ob[1] << endl;
    ​cout << "Test sort:" << endl;ob.sort();cout << ob << endl;
    }
  • Array

    #include 
    using namespace std;
    ​
    //目的:存不同类型的数据
    template 
    class Array {
    private:int size;//数据个数T* arr;//数据容器
    public:int getSize();Array();  //  Array(int size);Array(const Array& other);Array(T[], int n);~Array();
    ​Array& operator=(const Array& rhs);Array operator+(const Array& rhs) const; // appendT& operator[](int i); //allow read and writeconst T& operator[](int n) const; // readonly    operator T* (); // 将动态数组对象转换为类型T *friend ostream& operator << (ostream& out, const Array& rhs);
    ​void sort();
    };
    ​
    template
    int Array::getSize()
    {return size;
    }
    ​
    template
    Array::Array()
    {size = 0;arr = nullptr;
    }
    ​
    template
    Array::Array(int _size)
    {size = _size;arr = new T[size + 1];
    }
    ​
    template
    Array::Array(const Array& other)
    {if (size != other.size){delete[]arr;size = other.size;arr = new T[size+1];}for (int i = 0; i < size; i++){arr[i] = other.arr[i];}
    }
    ​
    template
    Array::Array(T a[], int n)
    {size = n;arr = new T[size + 1];for (int i = 0; i < size; i++){arr[i] = a[i];}arr[size] = '\0';
    }
    ​
    template
    Array::~Array()
    {if (arr){delete[]arr;arr = nullptr;}
    }
    ​
    template
    Array& Array::operator=(const Array& rhs)
    {if (size != rhs.size){delete[]arr;size = rhs.size;arr = new T[size + 1];}for (int i = 0; i < size; i++){arr[i] = rhs[i];}return *this;
    }
    ​
    template
    Array Array::operator+(const Array& rhs) const
    {int i = 0;Array temp;temp.size = size + rhs.size;temp.arr = new T[temp.size + 1];for (i = 0; i < size; i++){temp.arr[i] = arr[i];}for(i=0;i
    T& Array::operator[](int i)
    {return arr[i];
    }
    ​
    template
    const T& Array::operator[](int n) const
    {return arr[n];
    }
    ​
    template
    Array::operator T* ()
    {return arr;
    }
    ​
    template
    ostream& operator <<(ostream& out, const Array& rhs)
    {for (int i = 0; i < rhs.size; i++){out << rhs.arr[i]<<" ";}out << endl;return out;
    }
    ​
    template
    void Array::sort()
    {for (int i = 0; i < size; i++){for (int j = i + 1; j < size; j++){if (arr[i] > arr[j]){T t  = arr[i];arr[i] = arr[j];arr[j] = t;}}}
    }

相关内容

热门资讯

女朋友快生日了我不在她身边想说... 女朋友快生日了我不在她身边想说几句浪漫点得祝福语,请各位帮忙...亲爱的,距离永远阻挡不了我对你爱,...
我18岁了,想献血,请问献血有... 我18岁了,想献血,请问献血有什么规定?无传染性疾病
即便心再痛,也愿意因为爱而停下... 即便心再痛,也愿意因为爱而停下来等待前任回头的星座有哪些?摩羯座,金牛座还有白羊座就这个星座他是非常...
第一个字是从的成语大全,从字开... 第一个字是从的成语大全,从字开头的四字词语 第一个字是从的成语大全 从容应对、 从容自若、 从天...
谁能给我紫藤萝瀑布课后练习第1... 谁能给我紫藤萝瀑布课后练习第1题的答案!自己写。原先,焦虑和悲痛“一直压在我心上”,在繁花盛开的藤萝...
冷笑话的定义是什么? 冷笑话的定义是什么?怎么样的话才算冷笑话?不好笑的笑话吧.定义1:就是讲的人挺平静的,基本上面无表情...
感觉自己失去了目标,现在不知道... 感觉自己失去了目标,现在不知道该怎么生存下去了。人生中没有一帆风顺,现成的路可走,总会遇到一些困难,...
我都24了,还没有男朋友,我真... 我都24了,还没有男朋友,我真的很慌。怎么办?身边也没有男生说喜欢我你愿意网恋吗缘分 不要宅在家里那...
我有一个朋友,我们总是出去玩,... 我有一个朋友,我们总是出去玩,喝酒。但是他每次出来都要炫耀他赚了多少钱,我觉得他很爱炫,我就不想和炫...
林永健拍过什么电视剧 林永健拍过什么电视剧金婚喜耕田的故事城里城外马文的战争
斑马s6有必要学吗 斑马s6有必要学吗有。1、激发兴趣:通过有趣的故事、游戏和其他互动活动,斑马儿童英语S6可以激发孩子...
甜蜜乐章 撮合不了子奇和慕容啊... 甜蜜乐章 撮合不了子奇和慕容啊~~~~!必须是金曲奖的最佳演唱人,不然触发不了
暮光之城3 暮光之城3现在没有出呢!有也是骗人的!起码要国内上映之后吧!我和你一样期待呢!
学生会查寝收走了东西,要用什么... 学生会查寝收走了东西,要用什么法律武器把收走的东西要回来?和学校讲法律,劝你还是别这么冲动了。拿到明...
信任无价主要讲了一个什么故事 信任无价主要讲了一个什么故事主要讲了:一位女老师通过绝食的办法,让那位偷了快译通的学生自己主动交出。
什么叫奴隶社会 什么叫奴隶社会 奴隶社会:从公元前21世纪夏朝建立开始,到公元前221年秦王嬴政统一中国结束。[1...
中级经济师人力资源专业怎么才能... 中级经济师人力资源专业怎么才能考过啊?只是看指定的那两本书《经济基础》和《人力资源管理》,然后再把上...
为什么海里都是水啊 为什么海里都是水啊海里没水 海就不叫海了不难怎么叫海水 嘿嘿。海里没水 海就不叫海了
14岁两个女生,一米深的河里手... 14岁两个女生,一米深的河里手绑手溺亡,疑点重重,怎么回事?这个是因为她们忍受不了家里面的重男轻女,...
帮解几道五年级数学题!急急急~... 帮解几道五年级数学题!急急急~快快快!(要解)52=2*2*13