数组与数组类(类的设计)

来源:互联网 发布:大数据在社保行业应用 编辑:程序博客网 时间:2024/06/05 10:47

设计背景:

学习了算法,看到一个ppt资料有讲数组用类的方式来实现.


类很简单,就不做太多介绍,直接看代码吧。(构造函数中使用了随机数来初始化数组)


#include<iostream>#include<string>using namespace std;class MyArray{public:MyArray(int size);~MyArray();MyArray operator+(const MyArray &myarray);void arraySort();void printArray();private:int *p;int mSize;};MyArray::MyArray(int size){mSize = size;p = new int[size];for (int i = 0; i < mSize; i++){p[i] = rand() % 10;}}MyArray::~MyArray(){mSize = 0;delete[] p;}MyArray MyArray::operator+(const MyArray &myarray){this->mSize += myarray.mSize;this->p = new int[this->mSize + myarray.mSize];return *this;}void MyArray::arraySort(){//插入排序int i = 0;int j = 0;int k = -1;int temp = -1;for (i = 1; i < this->mSize; i++){k = i; //待插入位置temp = this->p[k];// 如果不满足条件,那么把temp再放回原先的位置for (j = i - 1; (j >= 0) && (this->p[j]>temp); j--){this->p[j + 1] = this->p[j]; //元素后移k = j; //k需要插入的位置}this->p[k] = temp;//元素插入}}void MyArray::printArray(){if (p == NULL){cout << "error" << endl;return;}for (int i = 0; i < mSize; i++){cout << p[i];}cout << "\0" << endl;}void main(){MyArray a(10), b(10);a.printArray();a.arraySort();a.printArray();system("pause");}


原创粉丝点击