MyArray.h
#ifndef MYARRAY_H #define MYARRAY_H class MyArray{ public: //无参构造函数,用户没有指定容量,则初始化为100 MyArray(); //有参构造函数,用户指定容量初始化 explicit MyArray(int capacity); //用户操作接口 //根据位置添加元素 void SetData(int pos, int val); //获得指定位置数据 int GetData(int pos); //尾插法 void PushBack(int val); //获得长度 int GetLength(); //析构函数,释放数组空间 ~MyArray(); private: int mCapacity; //数组一共可容纳多少个元素 int mSize; //当前有多少个元素 int* pAdress; //指向存储数据的空间 }; #endif
MyArray.cpp
#include"MyArray.h" MyArray::MyArray(){ this->mCapacity = 100; this->mSize = 0; //在堆开辟空间 this->pAdress = new int[this->mCapacity]; } //有参构造函数,用户指定容量初始化 MyArray::MyArray(int capacity){ this->mCapacity = capacity; this->mSize = 0; //在堆开辟空间 this->pAdress = new int[capacity]; } //根据位置添加元素 void MyArray::SetData(int pos, int val){ if (pos < 0 || pos > mCapacity - 1){ return; } pAdress[pos] = val; } //获得指定位置数据 int MyArray::GetData(int pos){ return pAdress[pos]; } //尾插法 void MyArray::PushBack(int val){ if (mSize >= mCapacity){ return; } this->pAdress[mSize] = val; this->mSize++; } //获得长度 int MyArray::GetLength(){ return this->mSize; } //析构函数,释放数组空间 MyArray::~MyArray(){ if (this->pAdress != nullptr){ delete[] this->pAdress; } }
TestMyArray.cpp
#include"MyArray.h" void test(){ //创建数组 MyArray myarray(50); //数组中插入元素 for (int i = 0; i < 50; i++){ //尾插法 myarray.PushBack(i); //myarray.SetData(i, i); } //打印数组中元素 for (int i = 0; i < myarray.GetLength(); i++){ cout << myarray.GetData(i) << " "; } cout << endl; }