概述:自己封装一个数组MyArray,添加一些方法,改成动态变长数组(数组容量不固定,当发现size==capicity时,将capicity扩大两倍,当size==capicity/4时,将capicity缩小两倍。size为数组当前元素个数,capicity为数组最大容量)
头文件:
#pragma once
#ifndef MYARRAY
#define MYARRAY
class MyArray
{
public:
MyArray(int a);
virtual ~MyArray();
bool isEmpty();
int getSize();
int getCapicity();
void addLast(int a);
void addfirst(int a);
void add(int pos, int a);//在pos索引位置添加元素
int removeData(int pos);//删除pos位置元素,返回该位置被删的值
int getData(int pos);
void printData();
private:
int *data;
int m_isize;//数组当前元素个数
int m_icapicity;//数组容量
void resize(int newCapicity);//实现动态变长数组,当size超过容量的时候不报错,而是调用该函数,改变容量
};
#endif
源文件:
#include "MyArray.h"
#include <iostream>
using namespace std;
MyArray::MyArray(int a)
{
data = new int[a];
m_icapici