这次写的是C++的创建动态数组的小程序,如果学过数据结构的童鞋,看着应该会很省力的,因为这个完全就是数据结构里的动态创建顺序表,几乎一模一样,不太了解的可以先看这里,没学数据结构的童鞋也不用捉急,没有什么难点,只是插入删除的地方有些烧脑,不过把十几年不用的手指头拿出来也是可以解决的,把临界考虑好就可以了。
目录
问题描述:
实现一个动态数组类,类体中包含添加,删除,查找等功能。
提示: 动态数组:通常是在堆区创建的数组,动态数组的长度及为其开辟的内存随着数组元素的添加而增加,随着数组元素的缩小而缩小。
运行结果
1.类的定义,文件名称DynamicArray.h
#ifndef _DYNAMICARRAY_H
#define _DYNAMICARRAY_H
class DynamicArray
{
public:
DynamicArray(int aSize=10);
~DynamicArray();
DynamicArray(const DynamicArray &aRef);
void assign(const DynamicArray &aRef);// 用一个动态数组的对象的值去修改另外一个对象
void append(int aValue);
bool remove(int aIndex); //删除下标为aIndex的数组元素
bool insert( int aIndex, int aVal );//在aIndex位置的元素后面插入新元素
bool remove(int aIndex, int aValue); //从下标为aIndex的元素开始查找,删除所有值为aValue的元素
const int *begin() const; //返回第一个数组元素的指针
const int *end() const; //返回最后一个元素的指针
int at(const int aIndex) const; //返回下标为aIndex的数组元素
void display();
int GetSize();
int GetLength();
private:
int *m_iData;
int m_iSize;
int m_iLength;
//请自己定义数据成员
};
#endif
2.类的实现,文件名称DynamicArray.h
# include <iostream>
# include "DynamicArray.h"
# define INSERTSIZE 10
using namespace std;
//构造函数初始化
DynamicArray::DynamicArray(int aSize)
{
do{
m_iData = new int[aSize];
}while(!m_iData);
m_iSize = aSize;
m_iLength = 0;
}
//析构函数
DynamicArray::~DynamicArray()
{
if(m_iData)
{